【Tomcat】【Openssl】Tomcat で SSL通信 ~TomcatにCSR作成と証明書を組み込む~

初めに

http://blogs.yahoo.co.jp/dk521123/31967584.html
で、「TomcatSSL通信」を行えるようになったが、もう少しちゃんと設定する

予備知識

 * 以下の記事を参照のこと。
http://blogs.yahoo.co.jp/dk521123/33100623.html

CSR作成方法

 * TomcatCSR作成 & 証明書を組み込む

前提条件

 * 以下が、インストールされていること
  + Tomcat
 + JDK

大まかな手順

0) OpenSSL設定(一回のみ)
1) キーストアファイル作成
2) サーバ証明書要求(CSR)作成
3) サーバ証明書発行
4) キーストアへインポート

手順

http://blogs.yahoo.co.jp/dk521123/31967584.html
と被る点もあるが、記載する

0) OpenSSL設定

 * 以下の関連記事の「OpenSSLのインストールおよび設定」を参照のこと
http://blogs.yahoo.co.jp/dk521123/32723492.html

1) キーストアファイル作成

 [1-1] コマンドプロンプトを立ち上げる
 [1-2] JDK に付属している keytool があるパスまで、移動する
  →例「cd C:\Program Files\Java\jdk1.7.0_25\bin」
 [1-3] keytoolツールで、自己証明書を作成する
 ~~~
  keytool -genkey -alias [証明書の名称] -keyalg RSA -keysize 2048 -keystore [キーストアファイル名] -validity [有効日数]
 ~~~
  →例「keytool -genkey -alias tomcat -keyalg RSA -keysize 2048 -keystore sample.keystore -validity 365」

 ※デフォルトの鍵とキーストアのパスワードは「changeit」
 ※-keystoreを指定しなかった場合、
  WinXPでは「C:\Documents and Settings\【ユーザ名】」の下に自己証明書「.keystore」が作成されるので
  任意の場所に移動する
   →例「C:\pg\apache-tomcat-7.0.41\conf\StoreKey\.keystore」
 ※有効日数のデフォルトは90日
 ※指定したURLのホスト名(ドメイン名)と、サーバ証明書の姓名(CN)が一致させる

 [1-4] keytoolコマンドで作成したキーストアファイルを確認する
 ~~~
  keytool -list -v -keystore [キーストアファイル名] -storepass [パスワード]
 ~~~
  →例「keytool -list -v -keystore sample.keystore -storepass changeit」

2) サーバ証明書要求(CSR)作成

コマンドプロンプトをそのままで
 [2-1] keytoolツールで、秘密鍵ファイルから CSR を作成を作成する
 ~~~
  keytool -certreq -sigalg SHA1withRSA -alias [証明書の名称] -file [CSRファイル名] -keystore [キーストアファイル名]
 ~~~
  →例「keytool -certreq -sigalg SHA1withRSA -alias tomcat -file sample.csr -keystore sample.keystore」

3) 署名付きサーバ証明書を、関連する証明書署名要求に対して生成



4) キーストアへインポート

 ~~~
  keytool -import -keystore [] -file [] -alias [] -trustcacerts
 ~~~
  →例「keytool -import -keystore [] -file [] -alias [] -trustcacerts」


関連記事

Tomcat

TomcatSSL通信 ~簡易版~

http://blogs.yahoo.co.jp/dk521123/31967584.html

TomcatSSL通信 ~TomcatCSR作成と証明書を組み込む~

http://blogs.yahoo.co.jp/dk521123/32060070.html

Java

Java で、SSL通信を行うには

 * 今回の証明書などを使って、JavaによるSSL通信。
http://blogs.yahoo.co.jp/dk521123/33122920.html

Openssl / keytool

Opensslの設定と自己証明書作成

http://blogs.yahoo.co.jp/dk521123/32723492.html

Windowsにおいて、Openssl を使って認証局を立てる

http://blogs.yahoo.co.jp/dk521123/33105021.html

Keytool と Openssl を使った証明書作成

http://blogs.yahoo.co.jp/dk521123/33788938.html

トラブルシューティング

keytoolエラーに関するトラブルシューティング

http://blogs.yahoo.co.jp/dk521123/32297632.html

Openssl に関するトラブルシューティング

http://blogs.yahoo.co.jp/dk521123/33100502.html

その他

SSL通信について

 * 用語をまとめている。
http://blogs.yahoo.co.jp/dk521123/33100623.html