ssl - 如何弥补 Jsoup 中明显的 SSL 链不匹配?
问题描述
我正在请求一个包含以下代码的网页:
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 遵循正确的认证路径,而不是被错误的额外证书分心?
解决方案
推荐阅读
- sas - proc stdize 产生错误的百分位数值
- c++ - 为什么在这种情况下内联函数会花费更多时间?代码如下:
- openstreetmap - 无法连接到立交桥
- javascript - 在 node.js 中使用 Async/await 的正确方法
- javascript - 返回默认值的简单方法如果访问可能未定义值的属性
- r - 创建循环以计算条件下的百分比并填写结果
- wpf - 将 OxyPlot 图表序列化为 XAML
- asp.net-mvc - 单选按钮默认全部未选中
- php - PHP 函数 (PhpStorm) 中的“找不到 PDO 方法”
- java - 程序类型已经存在:com.nineoldandroids.animation.IntKeyframeSet