tomcat ssl apr x509

时间:2012-06-14 19:40:52

标签: tomcat ssl apr

这是我在这个论坛的第一个问题,请提前对任何错误表示歉意。 我在使用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/,浏览器向我显示带有一个证书的证书选择器对话框:serv2Cert,我选择它并成功进入网页。如果我选择其他证书,服务器会向我显示错误页面。

我的问题: 当我获得证书选择器对话框时,我看到2个证书:serv2Cert和people1Cert(?)。他们俩都让我进入网页! 如果我更改SSLVerifyDepth或trust_ca.pem以将客户端证书限制为仅限于serv2Cert,我会收到SSL错误,例如未知ca 未知证书

我已经尝试了一些SSLVerifyDepth值,如1,2,3,4。只有“3”让我登录服务器。如果我从trust_ca.pem删除所有CA证书但是ROOT,让我使用两个客户端证书(people1Cert和serv2Cert)登录。

我会对此提出任何帮助,对不起我的英语不好,请提前谢谢。最好的问候。

1 个答案:

答案 0 :(得分:2)

你不能用Tomcat做到这一点。它对SSL非常不灵活。请注意,您要配置整个Tomcat容器,而不是单个Web应用程序。我建议你把一个Apache HTTP放在Tomcat前面,即作为反向代理。 Apache HTTPD允许您配置SSL的每个方面,包括可接受的客户端身份,直到各个目录的级别。