我正在尝试为tomcat设置双向ssl . 我创建了一个根CA和一个中间CA.然后我为tomcat服务器创建了一个证书,并为我的客户端创建了一个证书 . 两个证书都由中间CA签名 . 然后,我为tomcat创建了一个pkcs12密钥库,并将一个服务器证书中间CA证书根CA证书创建到密钥库中 .

在tomcat server.xml文件中,我使用clientAuth =“true”和keystoreType =“PKCS12”配置了ssl连接器 . 我还设置了keystoreFile,keystorePass,truststoreFile和truststorePass的值 .

在我的客户端计算机中,我还创建了一个pkcs12密钥库,并将客户端证书中间CA证书根CA证书导入密钥库 . 我将密钥库导入浏览器 .

当我重新启动tomcat并尝试从我的客户端浏览器访问tomcat服务器时,我得到:ERR_BAD_SSL_CLIENT_AUTH_CERT . 我使用openssl s_client命令来调试连接 . 我收到一些错误:

SSL3_READ_BYTES:sslv3警报证书未知:s3_pkt.c:SSL警报号46 SSL23_WRITE:ssl握手失败:s23_lib.c:184

openssl返回的检索证书似乎是正确的 . 只有“可接受的客户端证书CA名称”很奇怪 . 我想它应该列出可以签署客户端证书的有效CA.但是我看到openssl返回的内容基本上是服务器DN,而不是CA(中间或根) .

我想知道是否有人可以提供帮助 .

谢谢