11

Windows ボックスのスタンドアロン tomcat 6 サーバーでアプリケーションを実行しています。DoD CAC カードからクライアント証明書を要求および受信できるようにしたいと考えています。

CAC カードから証明書を渡すように正しくセットアップされた IE を実行しているクライアント マシンがあります。CAC が有効なサイトに移動すると、IE が証明書を選択するように求めるウィンドウをポップアップ表示し、そのウィンドウに私のCACカードからの証明書。

ユーザーから証明書を要求するように tomcat を構成しました。Tomcat で実行されているサイトに移動すると、同じ IE プロンプトが表示され、証明書を選択するように求められますが、自分のサイトを見ていると、証明書のリストが空です。server.xml ファイルで、コネクタを次のように構成しました。

<Connector port="8443" 
           protocol="HTTP/1.1" 
           SSLEnabled="true"
           maxThreads="150" 
           scheme="https" 
           secure="true"
           keystoreFile="<myKeysotre>"
           keystorePass="<myPassword>"
           clientAuth="want" 
           sslProtocol="TLS" />

私がめちゃくちゃだと思う場所は、キーストアファイルの生成です。現在、次のような java keytool コマンドを使用して生成しました。

keytool -genkey -alias -keypass myPassword -keystore myKeystore -storepass myPassword

私は現在開発を行っており、クライアント証明書を CAC カードからアプリケーションに取得する方法を探していますが、何か不足しています。私はこれがどのように機能するかについてあまり詳しくないので、ヘルプ/ガイダンスを使用できます。

ありがとう

4

1 に答える 1

11

ここで少し髪を引っ張った後、私が見つけたものです。IEプロンプトで証明書の選択を求められたのは、クライアント証明書(CACカードの証明書)がTomcatサーバーの信頼されたルートにあるCAによって発行されなかったためです。

私がする必要があったのは、ルートCA証明書をTomcatトラストストアに追加することでした。証明書の取得方法を理解するのに少し時間がかかりました。私がしたことは、http: //dodpki.c3pki.chamb.disa.mil/rootca.html Webサイトにアクセスし、ルート証明書(.cacファイルとして提供)をダウンロードしてから、それらのファイルをIEにインポートすることでした([ツール]-> Inernetオプション->コンテンツ->証明書)。次に、IE証明書ツールから)ルート証明書をX509ファイルとしてエクスポートし、それらを含むトラストストアを作成しました。

keytool -storepass somePassword -import -alias DoDClass3RootCA -keystore my.truststore -trustcacerts -file exports\DoDClass3RootCA.cer

そのストアが作成されたら、server.xmlファイルのConnector要素を更新して、そのトラストストアを含めます。

<Connector port="8443" 
           protocol="HTTP/1.1" 
           SSLEnabled="true"
           maxThreads="150" 
           scheme="https" 
           secure="true"
           truststoreFile="my.truststore"
           truststorePass="somePassword"
           … />

それを実行してTomcatを再起動した後、CACカード証明書が表示されました

于 2010-10-14T16:26:22.147 に答える