java ssl握手日志 was_进行SSL握手时未发送证书

我的应用程序调用Web服务请求 . 此Web服务的提供程序正在请求基于证书的身份验证 .

不幸的是,在进行握手时,证书不会作为CertificateRequest步骤的一部分返回 . 以下是日志跟踪

Cert Authorities:

*** ServerHelloDone

Warning: no suitable certificate found - continuing without client

authentication

我已使用以下属性放置密钥库和信任库,这些属性在握手期间被拾取(记录在日志中)

-Djavax.net.ssl.keyStore=$CMX_SSL_KEY_STORE

-Djavax.net.ssl.keyStorePassword=123456

-Djavax.net.debug=ssl

-Djavax.net.ssl.keyStoreType=pkcs12

JAVA_OPTS= JAVA_OPTS="-D$PS_TOKEN$ENV_TOKEN $LOCAL_MEM_OPTS $GC_OPTS

$CMAX_OPTS $JMX_OPTS $CMX_SSL_TRUST_STORE_OPT $MQ_OPTS

$ADDITIONAL_JVM_OPTS $LOCAL_JVM_OPTS $CMX_SSL_KEY_STORE_OPT"

我没有私钥作为密钥库的一部分,因为提供证书的供应商拒绝提供私钥 . 作为密钥库的一部分,我拥有整个证书链,但仍然无法正常工作

日志中看到的错误如下所示

Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)

at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)

at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2023)

at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1125)

at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)

at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)

at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)

at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)

at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)

需要一些指导来解决此问题

我在看

为什么java握手期间java不发送客户端证书?

这是同一个问题,但布鲁诺提供的解决方案失败了 . 无法使用相同的别名将证书附加到私钥

你可能感兴趣的:(java,ssl握手日志,was)