- PR -

クライアント-サーバ間の相互認証

1
投稿者投稿内容
banboo
大ベテラン
会議室デビュー日: 2003/12/05
投稿数: 210
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)