Ошибка в Java 8: «javax. net .ssl.SSLHandshakeException: com.ibm.jsse2.util.h: Ошибка цепочки сертификатов» - PullRequest
1 голос
/ 19 февраля 2020

Я пытаюсь tls1.2 connection на локальный веб-сервер (IIS) через Apache HTTPS-клиент, через CloseableHTTPClient. Я использую локальный cacert-file (jks-File), который содержит root, промежуточные и даже сертификаты серверов. Сами сертификаты выглядят нормально при проверке вручную и принимаются всеми браузерами.

Ошибка:

    %% 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...

Этот код работал до тех пор, пока сертификаты не были изменены (они стали недействительными).

После этого код вылетел с сообщением выше. Новый сертификат root подписан SHA1, а не SHA256. Я не могу понять, является ли это проблемой, ее изменение может быть проблемой (я использую сертификат, я не управляю им).

РЕДАКТИРОВАТЬ: Используется root ca "Digicert Global Root CA".

...