- - PR -
クライアント-サーバ間の相互認証
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-08-04 13:45
現在、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