我有SSL客户端证书。它正在与我的应用程序一起工作,直到最近发生的某个Java更新(也许早在一年之前)。它适用于Web浏览器。它适用于卷曲。如何在Java 8.31上使用客户端证书
例如,我可以做到这一点,它是罚款:
curl --cert example.pem https://example.net
现在我不能得到这个证书与Java的工作。我已经尽力尝试一个非常小的应用程序,如来自https://gist.github.com/4ndrej/4547029的SSLPoke
将证书放入ControlPanel的客户端证书中并没有这样做。
导入的.pem到密钥库中,然后在该密钥库指向与-Djavax.net.ssl.trustStore
或.keystore
没有做到这一点。
我得到的Java应用的是:
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
所以我无法弄清楚什么是错的 - 我调用java的方法是什么?我要放证书的地方?我输入证书的方式?
使用-Djava.security.debug=all
的调试输出不会使用我指定的trustStore/keyStore显示它。它甚至没有显示任何关于我想要达到的URL。
我出来的想法。
我不认为这是问题 - 卷曲的详细输出显示它使用TLS1.2: '*使用TLSv1.2工作/ ECDHE-RSA-AES256-GCM-SHA384' SSL连接 –