У меня есть программа Kotlin, которая использует jsoup для загрузки данных с определенного веб-сайта.Тестируя его в IntelliJ IDEA, он работает нормально.Когда я создаю JAR-артефакт, он выходит из строя с javax.net.ssl.SSLHandshakeException
.
. Я тестировал его на нескольких установках JRE, как в Windows, так и в Linux, как 1,8, так и 10, включая копию, поставляемую с IntelliJ,и JAR терпит неудачу каждый раз.Корневым сертификатом сайта является DigiCert Global Root G2 , который, кажется, находится в кадрах для каждой протестированной установки - отпечатки совпадают и все.
Я запустил JAR с -Djavax.net.debug=ssl
и включил это в конце вывода;другие выдержки доступны по запросу.
%% Invalidated: [Session-1, TLS_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: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
main, called close()
main, called closeInternal(true)
Exception in thread "main" javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at ...