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

証明書の作成

 * Keytool と Openssl については、以下の関連記事を参照のこと
Keytoolについて
http://blogs.yahoo.co.jp/dk521123/36518468.html
http://blogs.yahoo.co.jp/dk521123/31967584.html
Opensslについて
http://blogs.yahoo.co.jp/dk521123/32723492.html

[1] サーバ側の証明書作成

* パスワードは「changeit」とする
 [1] キーストアを作成する
     => 鍵のペア(公開鍵および関連する秘密鍵)を生成し、キーストア(サーバの鍵保管庫)に格納する

keytool -genkey -keystore serverKeystore.jks -alias server

 ※ なお、名前のところでは、ホスト名を入力しといた方がいい

■有効期限を指定する場合(下記の例は、10年)
keytool -genkey -keystore serverKeystore.jks -alias server -validity 3650

 [2] 手順[1]で作成したキーストアにある秘密鍵に対応する公開鍵(public key)を
     証明書ファイル「server.cer」として取り出す

keytool -export -keystore serverKeystore.jks -alias server -file server.cer

 ※ もし、証明書ファイルを、PEM形式に変換したい場合は、Opensslの以下のコマンドより可能

openssl x509 -inform DER -outform PEM -in server.cer -out server.pem

 [3] トラストストアを作成する(クライアントが使用する信頼できる公開鍵証明書の保管庫)

keytool -import -keystore serverTruststore.jks -alias serverTruststore -file server.cer

[2] クライアント側の証明書作成

基本的に、上記「[1] サーバ側の証明書作成」でやったことと同じ(パラメータだけ違うだけ)
 [1] キーストアを作成する
     => 鍵のペア(公開鍵および関連する秘密鍵)を生成し、キーストア(サーバの鍵保管庫)に格納する

keytool -genkey -keystore clientKeystore.jks -alias client

■有効期限を指定する場合(下記の例は、10年)
keytool -genkey -keystore clientKeystore.jks -alias client -validity 3650

 [2] 手順[1]で作成したキーストアにある秘密鍵に対応する公開鍵(public key)を
     証明書ファイル「client.cer」として取り出す

keytool -export -keystore clientKeystore.jks -alias client -file client.cer

 [3] トラストストアを作成する(サーバの証明書保管庫)

keytool -import -keystore clientTruststore.jks -alias clientTruststore -file client.cer


keytool構文

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

関連記事

Tomcat

TomcatSSL通信 ~簡易版~

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

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

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

Java

Ant で、Keystore ファイルを作成するには ~GenKeyタスク~

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

Java で、SSL通信を行うには

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

Openssl / keytool

Keytool コマンド

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

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