Я пытаюсь 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".