Ssl 基于CA的Tomcat客户端身份验证

Ssl 基于CA的Tomcat客户端身份验证,ssl,tomcat7,keystore,ca,Ssl,Tomcat7,Keystore,Ca,在Centos 7中使用Tomcat 7设置相互身份验证方案时遇到问题。 服务器身份验证正在按预期工作,但我仍停留在客户端身份验证上 服务器证书和客户端证书由同一CA颁发。我的目标是允许任何客户端拥有此CA颁发的证书 到目前为止,有关连接器的my server.xml如下所示: <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150"

Centos 7中使用Tomcat 7设置相互身份验证方案时遇到问题。 服务器身份验证正在按预期工作,但我仍停留在客户端身份验证上

服务器证书和客户端证书由同一CA颁发。我的目标是允许任何客户端拥有此CA颁发的证书

到目前为止,有关连接器的my server.xml如下所示:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150"
               scheme="https" secure="true" sslProtocol="TLSv1.2" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" SSLEnabled="true"
               keystoreFile="/absolute/path/to/mykeystore.jks" keystorePass="P455W0RD" keyAlias="myalias" 
               clientAuth="true"        
               truststoreFile="/absolute/path/to/mykeystore.jks" truststorePass="P455W0RD"
/>

当密钥库包含客户端证书时,相互身份验证将成功。 但是,当密钥库仅包含CA时,相互身份验证将失败

我已使用以下命令生成密钥库:

openssl pkcs12 -export -in  server.crt -inkey server.key -out server.p12 -name myalias -CAfile ca.crt -caname root
keytool -importkeystore -deststorepass <pass> -destkeypass <pass> -destkeystore mykeystore.jks -srckeystore server.p12 -srcstoretype PKCS12 -srcstorepass <pass> -alias myalias
keytool -importcert -alias root -keystore mykeystore.jks -storepass <pass> -file ca.crt
openssl pkcs12-export-in server.crt-inkey server.key-out server.p12-name myalias-CAfile ca.crt-caname root
keytool-importkeystore-deststorepass-destkeypass-destkeystoremykeystore.jks-srckeystoreserver.p12-srcstoretypkcs12-srcstorepass-alias myalias
keytool-importcert-alias root-keystore mykeystore.jks-storepass-file ca.crt
我还尝试从连接器中删除truststoreFile和truststorePass参数,并将CA添加到$JAVA\u HOME/jre/lib/security/中的cacerts中,但相互身份验证仍然失败

您能告诉我如何设置这种相互身份验证配置吗