最後に私の問題の解決策を得ましたので、他の誰かが動かなくなったら結果をここに掲載します。 自己署名証明書を生成するときに、デフォルトで
keytoolはDSA アルゴリズムを使用しています。私はことを発見しMichael's Software Thoughts & Ramblingsのマイケル・マーティンに
感謝以前のバージョンの は、 の問題がなく、これらのキーを受け入れました。 Firefox 3のベータ5では、 DSAは動作しませんが、RSAを使用すると動作します。 を生成するときに「-keyalg RSA」を渡すと、 certが作成され、Firefox 3ベータ5は完全に が受け入れられます。
私は単にそのフラグを設定し、FireFoxのすべてのキャッシュをクリアして、魅力的に機能しました!私はこれをプロジェクトのテストセットアップとして使用しています。これを他の人と共有する必要があるため、2つのSSL証明書を作成する小さなバッチスクリプトを作成しました。 1つはTomcatの設定にドロップすることができ、もう1つはFireFox/IEにインポートできる.p12ファイルです。ありがとう!
使用法:最初のコマンドライン引数は、クライアントのユーザー名です。すべてのパスワードは「パスワード」(引用符なし)です。必要に応じてハードコーディングされたビットを変更します。
@echo off
if "%1" == "" goto usage
keytool -genkeypair -alias servercert -keyalg RSA -dname "CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US" -keypass password -keystore server.jks -storepass password
keytool -genkeypair -alias %1 -keystore %1.p12 -storetype pkcs12 -keyalg RSA -dname "CN=%1,OU=Unit,O=Organization,L=City,S=State,C=US" -keypass password -storepass password
keytool -exportcert -alias %1 -file %1.cer -keystore %1.p12 -storetype pkcs12 -storepass password
keytool -importcert -keystore server.jks -alias %1 -file %1.cer -v -trustcacerts -noprompt -storepass password
keytool -list -v -keystore server.jks -storepass password
del %1.cer
goto end
:usage
echo Need user id as first argument: generate_keystore [username]
goto end
:end
pause
結果は2つのファイルです。 1つはserver.jksと呼ばれ、Tomcatにドロップし、{username} .p12というファイルをブラウザにインポートします。 server.jksファイルには、信頼できる証明書として追加されたクライアント証明書があります。
私は他の誰かがこれを見つけることを望みます。
そして、ここでは、Tomcatの7の(唯一のTomcat 6.xの上でテストした)あなたのTomcatのconf/sever.xmlファイル
<Connector
clientAuth="true" port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="${catalina.home}/conf/server.jks"
keystoreType="JKS" keystorePass="password"
truststoreFile="${catalina.home}/conf/server.jks"
truststoreType="JKS" truststorePass="password"
SSLVerifyClient="require" SSLEngine="on" SSLVerifyDepth="2" sslProtocol="TLS"
/>
に追加する必要があるXML:
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" SSLEnabled="true"
maxThreads="200" scheme="https" secure="true"
keystoreFile="${catalina.base}/conf/server.jks" keystorePass="password"
clientAuth="false" sslProtocol="TLS" />
これはありがとうございます!私は一日中、さまざまな "チュートリアル"に悩まされています。これはclientAuth = "true"で実際に働いた最初のものです。 "。 –
これは美しい答えです。私はバットファイルで多くの時間を節約しました。 – Yster