glassfishでSSLを使う必要があったので、いろいろ調べた結果をメモ代わりに書き残し。
とりあえず開発中のテストに使うだけなので、自己署名したものを証明書として使ってみたけど、やっぱりブラウザに怒られるなぁ(笑)
以下、WindowsXP SP3 + glassfish v2.1 + JDK 1.6.0_14 の組み合わせでやってみました。全てDOSプロンプト上で。
コマンドは複数行に分けて書いていますが、実際は一行で入力すること。パスなどは一例なので、実際の環境に合わせて変更すること。
1.証明書を置く場所へ移動する
cd "\Program Files\glassfish-v2.1\domains\domain1\config"
2.デフォルトで用意されている証明書を削除する
keytool -delete
-alias s1as
-keystore keystore.jks
-storepass changeit
※パスワードをデフォルトから変更している人は、changeit を変更したパスワードに置き換えて実行(以下同様に)
3.証明書を作成
keytool -genkeypair
-keyalg RSA
-keystore keystore.jks
-validity 365
-alias s1as
-storepass changeit
姓名を入力してください。
[Unknown]: Test User
組織単位名を入力してください。
[Unknown]: Development Div.
組織名を入力してください。
[Unknown]: Company Co., LTD.
都市名または地域名を入力してください。
[Unknown]: Tokyo
州名または地方名を入力してください。
[Unknown]: Minato-ku
この単位に該当する 2 文字の国番号を入力してください。
[Unknown]: JP
CN=Test User, OU=Development Div., O="Company Co., LTD.", L=Tokyo, ST=Minato-ku, C=JP でよろしいですか?[no]: yes
<s1as> の鍵パスワードを入力してください。
(キーストアのパスワードと同じ場合は RETURN を押してください):
4.証明書に署名をする
keytool -certreq
-alias s1as
-file s1as.csr
-keystore keystore.jks
-storepass changeit
5.証明書をファイルにエクスポートする
keytool -export
-alias s1as
-storepass changeit
-file server.cer
-keystore keystore.jks
証明書がファイル <server.cer> に保存されました。
6.glassfishを再起動する
以上の手順で証明書を作り、https://SERVER_NAME:8181/ でアクセスしたら、ブラウザからいろいろとお叱りを受けつつも、SSLで暗号化通信することができました。
OpenSSLとかを入れて、面倒なセットアップをしないといけないのかと思っていたら、意外にも簡単にできてしまってびっくりでした。
以下、参考サイト
コメント