SSLに憑かれた...じゃなくて疲れた

勤め先では遅ればせながらグループウェアを導入しました。
導入したのはAipoという、フリーなのにかなり使えるソフトです。
 
使い方は慣れればよいのですが、困ったのはSSL設定です。外からアクセスできるようにするときに暗号通信を使うのは当然ですが、当初そのような機能がないと思っていたので、Stunnelを利用しようとしました。しかし中途半端な通信しかできず、事実上使用できませんでした。ところがよく調べると、Aipo自体にSSLの機能があるのが分かったのでそれを利用しようと設定をしたのです。
 
AipoはTOMCATを使っているのでそこの設定なのですが、これが問題の始まりでした
導入したサーバーにはすでにApache+OpenSSLが導入されているので、これの証明書を利用しようとしたのが苦労の始まりです。というのも、Apacheは秘密鍵ファイルと証明書ファイルの2つをそのまま読み込むのですが、TOMCATは2つを格納した1つのファイルを読み込むのです。
 
そこで、JAVA SDKのkeytoolを使用してkeystoreというファイルにインポートしようとしたのですが、どうもうまくいきません。悩んだ結果pkcs12という形式ならばうまくいくことが分かりました。pkcs12も1つのファイルにまとめるタイプで、しかもOpenSSLのコマンドで作成できます。
 
秘密鍵と証明書をpkcs12で1つのファイル(keystore)にして、TOMCATの設定をjksからpkcs12に変更することでうまく動作しました。
 
以下具体的なコマンド
OpenSSLコマンドでpkcs12形式keystoreの作成
openssl pkcs12 -export -inkey "秘密鍵ファイル" -in "証明書ファイル" -out "keystoreファイル(拡張子は「p12」で新規作成)"
 
TOMCATのSSL設定
tomcatconfserver.xmlの内容を編集(SSL関連の設定部分に以下を追加)
keystoreType="PKCS12" keystoreFile="○○○○.p12" keystorePass="パスワード"
なお、当初SSL関係の部分はコメントアウトされているので、気をつけてください。
 
※念のため、jrelibsecurityjava.security(Windowsの場合)の keystore.typeもjksからpkcs12に変更しておいたほうがいいかもしれません。
また、Windowsでファイルを編集する場合は、文字コードの関係からメモ帳ではなく「ワードパッド」や「TeraPad」などを使ってください。
コマンドは以上です。
 
いや~ほんと疲れました。これに気づくのに半日かかりましたよ。ちょっとしたことなんですが、意外と気づかないもんですね。
 
スポンサーリンク

フォローする

スポンサーリンク