在tomcat上运行的应用程序在连接到服务时无法传递客户端身份验证

bqucvtff  于 2021-10-10  发布在  Java
关注(0)|答案(0)|浏览(223)

我用这个把头撞在墙上已经有一段时间了,希望有人能解释我做错了什么。我有一个tomcat服务器,在该服务器上部署了一个应用程序,并且正在联系另一个服务。在客户端在其负载平衡器上启用客户端身份验证之前,一切正常。tomcat->app->lb with client auth->endpoint在jvm上启用握手调试返回以下结果:

javax.net.ssl|FINE|0F|myScheduler-1| UTC|ServerHelloDone.java:151|Consuming ServerHelloDone handshake message (
<empty>
)
javax.net.ssl|FINE|0F|myScheduler-1| UTC|CertificateMessage.java:299|No X.509 certificate for client authentication, use empty Certificate message instead
javax.net.ssl|FINE|0F|myScheduler-1| UTC|CertificateMessage.java:330|Produced client Certificate handshake message (
"Certificates": <empty list>
)

据我所知,这意味着没有找到符合客户端身份验证要求的证书。tomcat的应用程序和ssl端口都有其定义的密钥库和it密钥对,虽然两者不同,但都应该传递,因为客户端身份验证只要求使用特定ca签名的证书(它们都是)。在cacerts内部,我拥有ca当局要求的所有证书。我尝试将证书本身放入cacerts,但结果相同。tomcat端口配置:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true"
            clientAuth="false" sslProtocol="TLS" sslEnabledProtocols="TLSv1.2"
            keystoreFile="/usr/local/tomcat/config/pkcs_keystore.jks"
            keystorePass="***************"
            keyAlias="server_alias" />

我尝试通过浏览器连接到端点,果然它向我要了一个证书,我为它提供了“服务器别名”证书,它工作得非常完美,所以我不知道它为什么不能与tomcat一起工作。
我是一名系统工程师,所以我不知道这是否是应用程序本身必须完成的事情?欢迎任何帮助。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题