[Java] glassfishでSSL証明書の発行

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とかを入れて、面倒なセットアップをしないといけないのかと思っていたら、意外にも簡単にできてしまってびっくりでした。

以下、参考サイト

コメント

タイトルとURLをコピーしました