我尝试通过Apache客户端通过tls1.2 connection对本地via服务器(IIS)进行CloseableHTTPClient测试。我使用一个本地cacert-file (jks-File),它包含根、中间、甚至服务器证书。当手动检查时,证书本身看起来很好,并为所有浏览器所接受。
错误:
%% Invalidated: [Session-2, SSL_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
main, SEND TLSv1.2 ALERT: fatal, description = certificate_unknown
main, WRITE: TLSv1.2 Alert, length = 2
main, called closeSocket()
main, handling exception: javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.h: Certificate chaining error
javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.h: Certificate chaining error
at com.ibm.jsse2.k.a(k.java:6)
at com.ibm.jsse2.at.a(at.java:572)
at com.ibm.jsse2.D.a(D.java:11)
at com.ibm.jsse2.D.a(D.java:74)
at com.ibm.jsse2.E.a(E.java:307)
at com.ibm.jsse2.E.a(E.java:121)
at com.ibm.jsse2.D.r(D.java:223)
at com.ibm.jsse2.D.a(D.java:198)
at com.ibm.jsse2.at.a(at.java:649)
at com.ibm.jsse2.at.i(at.java:627)
at com.ibm.jsse2.at.a(at.java:689)
at com.ibm.jsse2.at.startHandshake(at.java:432)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:404)
and so forth...到目前为止,这段代码一直在工作,直到证书被更改(它们变得无效)。
在此之后,代码与上述消息崩溃。新的根证书是SHA1 1签名的,而不是SHA256。我看不出这是否是问题所在,改变它可能是个问题(我使用证书,我不管理它)。
编辑:根ca使用的是"Digicert全局根CA“。
发布于 2020-06-10 13:14:44
我有类似的东西,链中的一张证书过期了。你能重新检查一下原木吗?也许其中一个证书是无效的?
https://www.ibm.com/support/pages/certificate-chaining-errors-httprequest-node
当所提供的证书链无法验证时,将发生“证书链接错误”(
A)。在这里,其中一个证书是“不受信任的”。
在5月,链中的一个证书过期了。
https://stackoverflow.com/questions/60303465
复制相似问题