Я запрашиваю веб-страницу со следующим кодом:
Jsoup.connect(url)
.method(Connection.Method.GET)
.execute()
Сайт, который я пытаюсь очистить, показывает следующий путь сертификации в Chrome:
1) ***REDACTED***
Issued by DigiCert Global CA G2
2) DigiCert Global CA G2
Issued by DigiCert Global Root G2
3) DigiCert Global Root G2
Issued by DigiCert Global Root G2
Запуск моей программы с -Djavax.net.debug=ssl
показывает эту цепочку:
1) ***REDACTED***
Issued by DigiCert Global CA G2
2) Symantec Class 3 Secure Server SHA256 SSL CA
Issued by VeriSign Universal Root Certification Authority
3) VeriSign Universal Root Certification Authority
Issued by VeriSign Universal Root Certification Authority
Результатом является исключение javax.net.ssl.SSLHandshakeException. Тестирование сервера в SSL Labs показывает правильную цепочку в разделе «Пути сертификации» и разорванную цепочку в разделе «Дополнительные сертификаты (если предоставляются)», где «Неполные, Дополнительные сертификаты, содержит привязку» указаны как проблемы цепочки. У меня нет желания использовать validateTLSCertificates (false) без крайней необходимости.
Как я могу убедиться, что Jsoup следует по правильному пути сертификации, а не отвлекается на ошибочный дополнительный сертификат?