JBoss4.0.3SP1でのサーバ証明書設定
環境
- OS :WindowsXP Professional SP2
- JDK:Sun Java SDK J2SE 1.4.2-11
- JBoss 4.0.3 SP1(WebServerは同梱のTomcatを使用)
JBossでHTTPSをしばらく使用していましたが、SSLHandshakeException が発生するようになったため、設定を見直してみました。なるべくJBossのデフォルトの設定を生かす形にしています。
なお、JBossのインストール先を「%JBOSS_HOME%」、JDK/JREのインストール先を「%JAVA_HOME%」という環境変数に設定しているものとします。
また、問題を見つけた方は是非激しくツッコミお願いいたします。
手順
とした場合
C:\>keytool -genkey -alias rmi+ssl -keyalg RSA -keystore chap8.keystore -validity 3650 キーストアのパスワードを入力してください: rmi+ssl 姓名を入力してください。 [Unknown]:localhost 組織単位名を入力してください。 [Unknown]: 組織名を入力してください。 [Unknown]: 都市名または地域名を入力してください。 [Unknown]: 州名または地方名を入力してください。 [Unknown]: この単位に該当する 2 文字の国番号を入力してください。 [Unknown]: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown でよろしいですか? [no]: y <rmi+ssl> の鍵パスワードを入力してください。 (キーストアのパスワードと同じ場合は RETURN を押してください): C:\>
-
- 出力された「chap8.keystore」を「%JBOSS_HOME%\server\default\conf」にコピーします
- ローカルCAによる証明書を信頼させる(JDKの cacerts に追加)
keytool -export -alias rmi+ssl -keystore clientKeys -file client.cer -keystore %JBOSS_HOME%/server/default/conf\chap8.keystore キーストアのパスワードを入力してください: rmi+ssl 証明書がファイル <client.cer> に保存されました。
-
- キーストアへの証明書の登録
- JDKのキーストアのデフォルトパスワードは「changeit」なので、それを使用しています。
- キーストアへの証明書の登録
keytool -import -alias rmi+ssl -file client.cer -noprompt -trustcacerts -keystore %JAVA_HOME%/jre/lib/security/cacerts キーストアのパスワードを入力してください: changeit 証明書がキーストアに追加されました。
-
-
- キーストアへの証明書の登録時にエラーになる場合
- 既にキーストアに存在すると言われた場合は、以下の手順で削除してから再度追加を行う
-
keytool -delete -alias rmi+ssl -keystore %JAVA_HOME%/jre/lib/security/cacerts キーストアのパスワードを入力してください: changeit