当前位置: 首页 > 知识库问答 >
问题:

Java8中的错误:“javax。网ssl。SSLHandshakeException:com。国际商用机器公司jsse2。util。h:证书链接错误'

麻宾白
2023-03-14

我尝试了一个tls1。2通过CloseableHTTPClient通过Apache HTTPS客户端连接到本地Web服务器(IIS)。我使用一个本地cacert文件(jks文件),其中包含根证书、中间证书甚至服务器证书。当手动检查时,证书本身看起来很好,并且被所有浏览器接受。

错误:

    %% 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签名的,而不是SHA256。我看不出这是否是问题所在,更改它可能是个问题(我使用证书,我不管理它)。

编辑:使用的根ca是“Digicert全局根ca”。


共有1个答案

袁法
2023-03-14

我得到了类似的东西,链中的一个证书过期了。你能再检查一下你的日志吗?也许链中的一个证书无效?

https://www.ibm.com/support/pages/certificate-chaining-errors-httprequest-node

当提供的证书链无法验证时,会发生“证书链错误”。在这里,其中一个证书是“不受信任的”。

在可能的情况下,链中的证书之一过期。

 类似资料: