这是我在这个论坛的第一个问题,请提前接受我的歉意。我在使用 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 密钥库 (Windows-MY) 中具有 2 个证书的 Windows pc 客户端:people1Cert 和 serv2Cert
trust.pem包括 ROOT、CA_intermediate、CA4Servers 和 tomcat pem 编码的公钥。 trust_ca.pem所有 trust.pem 但 tomcat 证书。
我想要什么:
转到https://tomcat.server:8443/
,浏览器向我显示带有一个证书的证书选择器对话框:serv2Cert,我选择它并成功进入网页。如果我选择另一个证书,服务器会显示一个错误页面。
我的问题: 当我得到证书选择器对话框时,我看到 2 个证书:serv2Cert 和 people1Cert (?)。他们两个都让我去网页!如果我更改 SSLVerifyDepth 或 trust_ca.pem 以将客户端证书限制为仅 serv2Cert,我会收到诸如未知 ca或未知证书之类的 SSL 错误
我已经尝试过一些 SSLVerifyDepth 值,例如 1、2、3、4。只有“3”让我登录服务器。如果我从 trust_ca.pem 中删除除 ROOT 之外的所有 CA 证书,让我使用两个客户端证书(people1Cert 和 serv2Cert)登录。
我会为此提供任何帮助,对不起我的英语不好,提前谢谢你。最好的祝福。