我最近检测到不稳定的SSL证书路径验证
Ubuntu 12.04 LTS(GNU/Linux 3.2.0-26-generic x86_64)
OpenJDK运行时环境(IceDea6 1.11.4)(6b24-1.11.4-1ubuntu0.12.04.1)
OpenJDK 64位服务器VM(构建20.0-b12,混合模式)
和
Ubuntu 10.04.1 LTS
OpenJDK运行时环境(IcedTea6 1.11.4)(6b24-1.11.4-1ubuntu0.10.04.1)
OpenJDK服务器VM(构建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
我已经检查了根证书是否总是包含在密钥库中…它是(巴尔的摩网络信托根)。我已经用浏览器认证信息对话框显示的数据仔细检查了发送数据的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),JavaHotSpot(TM)64位服务器VM(构建20.10-b01-428,混合模式)。所有这些请求都成功了。因此,在OpenJDK下,这种SSL认证路径的验证似乎不稳定。
有类似的经历吗?
诚挚的问候
多米尼克
我认为此异常有两个原因。
路径不与任何信任锚链接
另请参阅此链接。
问题内容: 我正在尝试通过调用HTTPS REST API 。在开发过程中,我偶然发现以下错误: 因此,我在Google上搜索了一下,并找到了很多可行的解决方案。 使用Jersey客户端的HTTPS https://gist.github.com/outbounder/1069465 如何解决“ java.security.cert.CertificateException:不存在使用者替代名称”
问题内容: 假设我编写了两个Java应用程序:并且它们被部署并在两个单独的服务器上运行(部署到和部署到),并且这两个应用程序需要通过SSL相互通信(双向)。我们还假设每个应用程序都有自己的SSL证书。 我(Java程序员)如何编码并验证彼此的SSL证书?每个CA是否都提供某种我可以使用的RESTful API ?Java是否有自己的证书验证API?我可以使用开放源代码的第三方JAR或服务吗? 当我
我正在尝试通过调用HTTPS REST API。在开发过程中,我偶然发现了以下错误: 所以我用谷歌搜索了一下,找到了大量的解决方案,实际上是有效的。 使用泽西客户端的HTTPS https://gist.github.com/outbounder/1069465 如何修复java.security.cert.证书异常:不存在主题替代名称错误? http://www.mkyong.com/webse
假设我编写了两个Java应用程序:和,它们在两个独立的服务器上部署和运行(部署到和部署到
我试图访问我的应用程序中的网址,但我得到了这个错误。 我尝试应用所有这些修复,但没有成功:http://www.mkyong.com/webservices/jax-ws/suncertpathbuilderexception-unable-to-find-valid-certification-path-to-requested-target/ 很快,它需要运行InstallCert应用程序(j
当我想要在cPanel上安装证书时,我会看到以下错误: 错误证书验证失败! 已执行/usr/bin/openssl verify-capath/var/cpanel/ssl/installed/cabundles: stdin:CN=example.com 0深度查找时错误20:无法获取本地颁发者证书