風で飛んでいくチラ裏

気ままに雑記メモ書き殴り。古い記事は別blogからの引っ越しなのでレイアウトがアレです。

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!" が表示された。

HTTPSの接続をTomcatで処理させる

http://lfll.blog73.fc2.com/blog-entry-121.html

最初に挙げた参考サイト様の通りです。編集するファイルは default-ssl のほう。

Apache再起動で無事HTTPS経由でTomcatの応答を受け取ることができました。

*1:外部に公開するサーバではないし、大したデータも入ってないので必要無いといえば無いですが。HeartBleed怖いっすよねー