これは、このフォーラムでの私の最初の質問です。間違いがあった場合は事前にお詫び申し上げます。SSL と APR を使用した Tomcat の構成に問題があります。
コンテキスト: tomcat 7、Java 7、OpenSSL、いくつかの有効な x509 証明書。
私のhttpsコネクタ:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true"
SSLVerifyClient="require" SSLVerifyDepth="3"
SSLCertificateFile="${catalina.home}/security/server.pem"
SSLCertificateKeyFile="${catalina.home}/security/server.key"
SSLCertificateChainFile="${catalina.home}/security/trust.pem"
SSLCACertificateFile="${catalina.home}/security/trust_ca.pem"
/>
PKI ツリー:
ROOT -> CA_intermediate -> CA4Servers -> server (tomcat)
-> serv2Cert
-> CA4People -> people1Cert
Windows キーストアに 2 つの証明書を持つ Windows PC クライアント (Windows-MY): people1Cert と serv2Cert
trust.pemには、ROOT、CA_intermediate、CA4Servers、および tomcat pem でエンコードされた公開鍵が含まれます。 trust_ca.pem trust.pemのすべてですが、tomcat 証明書です。
私が欲しいもの: に
行くとhttps://tomcat.server:8443/
、ブラウザは 1 つの証明書を含む証明書選択ダイアログを表示します: serv2Cert、私はそれを選択し、Web ページに正常にアクセスします。別の証明書を選択すると、サーバーからエラー ページが表示されます。
私の問題: 証明書選択ダイアログが表示されると、serv2Cert と people1Cert (?) の 2 つの証明書が表示されます。どちらも私をウェブページに行かせてくれました!SSLVerifyDepth または trust_ca.pem を変更してクライアント証明書を serv2Cert のみに制限すると、unknown caまたはunknown certificateなどの SSL エラーが発生します
1、2、3、4 などの SSLVerifyDepth 値をいくつか試しました。サーバーにログインできるのは「3」だけです。trust_ca.pem から ROOT 以外のすべての CA 証明書を削除すると、両方のクライアント証明書 (people1Cert と serv2Cert) でログインできるようになります。
これについての助けに感謝します。下手な英語で申し訳ありませんが、事前に感謝します。よろしくお願いします。