- - PR -
JSSEによるSSL通信
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-08-03 18:58
JSSEによるSSL通信を検討しております。
keytoolを使用して、クライアントとサーバの鍵、証明書を 作成し、JSSEで認証を行うところまでできました。 その次の段階として、keytoolによる自己署名による 証明書ではなく、プライベートCAを用いた証明書を作成したいと 考えております。 プライベートCAを用いた証明書はOpenSSLを用いて作成した場合、 これをJSSEで読み出す事はできるのでしょうか? 例えば、OpenSSLコマンドを用いて作成したkeyStoreをJSSEで 使用する事はできるのでしょうか? どなたかご存知の方がいらっしゃいましたらご教授御願い致します。 |
|
投稿日時: 2004-08-04 13:12
上記で質問した事の
関連質問なのですが、 OpenSSLコマンドを用いて作成したkeyStoreと keytoolによって作成したkeyStoreは 互換性があるのでしょうか? |
|
投稿日時: 2004-08-04 13:55
やりたい事をもう少し具体的に書きます。
現在、SSLを用いてクライアント-サーバ間の相互認証を行おうと思っております。 今まで行った事として、 以下のURLを参考にして、 http://www-106.ibm.com/developerworks/java/library/j-customssl/sidebar.html 鍵と証明書の準備をしました。 1.KeyStore setup クライアント側のキーストアの設定 keytool -genkey -alias alice -keystore clientKeys サーバ側のキーストアの設定 keytool -genkey -alias server -keystore serverKeys 2.TrustStore setup 公開鍵の証明書をファイルにエクスポートする. keytool -export -alias alice -keystore clientKeys -file alice.cer keytool -export -alias server -keystore serverKeys -file server.cer ファイルから公開鍵の証明書を取り出し,キーストアにインポートする. keytool -import -alias server -keystore clientTrust -file server.cer keytool -import -alias alice -keystore serverTrust -file alice.cer ----------------------------------------------------------- 次に、 以下のURLを参考にして、 http://www.techscore.com/tech/Java/Servlet/11.html プライベートCAを用いて証明書を作成しました。 1.プライベートCAを設立する準備 $ mkdir demoCA $ mkdir demoCA/private $ mkdir demoCA/newcerts $ touch demoCA/index.txt $ echo 01 > demoCA/serial 1.プライベートCA自身の鍵と証明書を作成 $ openssl req -keyout demoCA/private/cakey.pem -out demoCA/cacert.pem -new -x509 2.ユーザ証明書の作成 $ openssl req -keyout user.pem -out user.cer -new 3.プライベートCAで作成した証明書に署名 $ openssl ca -in user.cer -out user.crt 4.プライベートCAをキーストアに登録 「(JREのディレクトリ)/lib/security/cacerts」をそのまま使用せずにコピーし、 コピーしたキーストアをjavax.net.ssl.trustStoreプロパティで指定するようにします。 まずコピーしたキーストアにプライベートCAの証明書を追加します。 $ keytool -import -file cacert.pem -trustcacerts -alias 4dd.co.jp -keystore cacerts -storepass changeit --------------------------------------------------------------- この後、どのようにすればよいのかがわかりません。やりたい事の イメージは クライアントの公開鍵の証明書を取り出し,サーバ側の キーストアにインポートするです. ここで、alice.cerにあたるものが、user.cer(もしくはuser.crt?) だとすると keytool -import -alias alice -keystore serverTrust -file user.cer です。更に サーバ側の公開鍵の証明書を取り出し,クライアント側の キーストアにインポートするです. keytool -import -alias server -keystore clientTrust -file ? ------------------------------------------ cacerts,user.cer,user.crt等をどこのkeyStoreにどうインポート すればよいのかわかりません。 どなたかご存知の方、アドバイスを頂けないでしょうか? |
|
投稿日時: 2004-08-04 13:56
やりたい事をもう少し具体的に書きます。
現在、SSLを用いてクライアント-サーバ間の相互認証を行おうと思っております。 今まで行った事として、 以下のURLを参考にして、 http://www-106.ibm.com/developerworks/java/library/j-customssl/sidebar.html 鍵と証明書の準備をしました。 1.KeyStore setup クライアント側のキーストアの設定 keytool -genkey -alias alice -keystore clientKeys サーバ側のキーストアの設定 keytool -genkey -alias server -keystore serverKeys 2.TrustStore setup 公開鍵の証明書をファイルにエクスポートする. keytool -export -alias alice -keystore clientKeys -file alice.cer keytool -export -alias server -keystore serverKeys -file server.cer ファイルから公開鍵の証明書を取り出し,キーストアにインポートする. keytool -import -alias server -keystore clientTrust -file server.cer keytool -import -alias alice -keystore serverTrust -file alice.cer ----------------------------------------------------------- 次に、 以下のURLを参考にして、 http://www.techscore.com/tech/Java/Servlet/11.html プライベートCAを用いて証明書を作成しました。 1.プライベートCAを設立する準備 $ mkdir demoCA $ mkdir demoCA/private $ mkdir demoCA/newcerts $ touch demoCA/index.txt $ echo 01 > demoCA/serial 1.プライベートCA自身の鍵と証明書を作成 $ openssl req -keyout demoCA/private/cakey.pem -out demoCA/cacert.pem -new -x509 2.ユーザ証明書の作成 $ openssl req -keyout user.pem -out user.cer -new 3.プライベートCAで作成した証明書に署名 $ openssl ca -in user.cer -out user.crt 4.プライベートCAをキーストアに登録 「(JREのディレクトリ)/lib/security/cacerts」をそのまま使用せずにコピーし、 コピーしたキーストアをjavax.net.ssl.trustStoreプロパティで指定するようにします。 まずコピーしたキーストアにプライベートCAの証明書を追加します。 $ keytool -import -file cacert.pem -trustcacerts -alias 4dd.co.jp -keystore cacerts -storepass changeit --------------------------------------------------------------- この後、どのようにすればよいのかがわかりません。やりたい事の イメージは クライアントの公開鍵の証明書を取り出し,サーバ側の キーストアにインポートするです. ここで、alice.cerにあたるものが、user.cer(もしくはuser.crt?) だとすると keytool -import -alias alice -keystore serverTrust -file user.cer です。更に サーバ側の公開鍵の証明書を取り出し,クライアント側の キーストアにインポートするです. keytool -import -alias server -keystore clientTrust -file ? ------------------------------------------ cacerts,user.cer,user.crt等をどこのkeyStoreにどうインポート すればよいのかわかりません。 どなたかご存知の方、アドバイスを頂けないでしょうか? |
1
