Debian(wheezy)でApache2.2とTomcatの連携
はじめに
必要なアプリケーションのインストールは既に済んでいるものとします。Tomcatのバージョンは7.0.50。
Tomcatをrootではない専用ユーザで動かしていると、色々頑張らないと1000未満のポートで待ち受けできないようなので、Apacheをフロントエンドのリクエスト受付係にして、そこからTomcatにリクエストをスルーさせることにします。一般的にもこの方がよろしいということですね。
今回は静的リソースをApacheで表示させるとかはせず、リクエストを全部Tomcatに丸投げしてます。本当はApacheで処理できるものはApacheにやらせたほうが良いです。
HTTPでの連携
http://lfll.blog73.fc2.com/blog-entry-121.html
ほとんどこちらの参考URLの通り。HTTPについてはおそらく問題無いと思われるが、このままだとHTTPSはつながりませんね。
SSLを使えるようにする
Tomcatで使用するkeystoreからApacheで使用する秘密鍵とサーバ証明書への変換
javaのkeystoreツールで既に作成済みのjksがあるので、まずはこれをApacheで使えるように秘密鍵とサーバ証明書を取り出します。
http://system-admin.seesaa.net/article/94984370.html
http://stackoverflow.com/questions/652916/converting-a-java-keystore-into-pem-format
............
keystoreのパスワード忘れた\(^o^)/
流れとしては、javaのkeystoreコマンドで jks -> pkcs12 に変換、OpenSSLで pkcs12 -> 私有鍵(秘密鍵)とサーバ証明書(pemでもderでも)に変換すると良さげです。
仕方ねぇ、どうせオレオレ証明書だし再発行するか。
OpenSSLのアップグレード
OpenSSLのバージョン見たら1.0.1eだったのでついでにアップグレードしておきます*1。
やり方は割愛。
秘密鍵、自己署名証明書の発行とApache2の設定
http://uturo1.nevernothing.jp/apache2_ssl/
参考サイト様のとおりに作業すればOK。httpsで接続すると、ブラウザで証明書ダメーの警告画面が出て、それでも接続しに行くと、"It Works!" が表示された。
*1:外部に公開するサーバではないし、大したデータも入ってないので必要無いといえば無いですが。HeartBleed怖いっすよねー