【问题标题】:Unstable SSL certificate path validation under OpenJDKOpenJDK下不稳定的SSL证书路径验证
【发布时间】:2012-10-18 06:33:53
【问题描述】:

我最近在

下检测到不稳定的 SSL 证书路径验证

Ubuntu 12.04 LTS(GNU/Linux 3.2.0-26-generic x86_64)
OpenJDK 运行时环境 (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.12.04.1)
OpenJDK 64-Bit Server VM(build 20.0-b12,混合模式)

Ubuntu 10.04.1 LTS
OpenJDK 运行时环境 (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.10.04.1)
OpenJDK Server VM(build 20.0-b12,混合模式)

与在线银行主机的 SSL 连接出现以下错误:

sun.security.validator.ValidatorException: PKIX path validation failed:
java.security.cert.CertPathValidatorException:  
Path does not chain with any of the trust anchors  

我检查了根证书是否始终包含在密钥库中……它是(巴尔的摩 Cyber​​Trust Root)。我已经用浏览器认证信息对话框显示的数据仔细检查了发送数据的 MD5 和 SHA1 指纹......同样!之后,我找到了 SSLPoke,这是一个用于 SSL 通信的小实用程序,并将其用于后续请求:

java -Djavax.net.debug=ssl SSLPoke hbci-pintan.gad.de 443

这显示了不稳定性:10 个请求中约有 8 个因上述错误而失败,10 个请求中有 2 个成功。对于每个失败的请求,我在 Mac OS X 10.7.5 java 版本“1.6.0_35”下使用 Java(TM) SE 运行时环境(构建 1.6.0_35-b10-428-11M3811),Java HotSpot 立即发送了相同的请求(TM) 64 位服务器 VM(内部版本 20.10-b01-428,混合模式)。所有这些请求都成功了。因此,这样的 SSL 证书路径的验证在 OpenJDK 下似乎是不稳定的。

有没有类似经历的人?

亲切的问候
多米尼克

【问题讨论】:

    标签: java ssl ssl-certificate openjdk


    【解决方案1】:

    我认为这个异常有两个原因。

    1. 根证书在 Java 密钥库中不受信任。
    2. 所需的中间证书不存在或错误。路径中的所有证书都应从 Web 服务器发送到客户端。

    Path does not chain with any of the trust anchors

    参考此链接also

    【讨论】:

    • 是的,这也是我的第一个想法。但是为什么有时证书验证成功,有时却没有......没有任何变化?
    • 根据Qualys SSL Labs,证书的顺序不正确。可能是这个原因吗?
    猜你喜欢
    • 1970-01-01
    • 2012-04-12
    • 2017-06-13
    • 2019-03-29
    • 2018-02-21
    • 2019-12-14
    • 2019-07-21
    • 2016-12-19
    • 2014-09-24
    相关资源
    最近更新 更多