- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个网络服务器,它通过 HTTPS 托管网络应用程序和其余 API。 *.thedomain.com 的证书由安装在服务器上的 Symantech 签名。 “thedomain”用于示例目的。这不是实际的域。
我认为信任链没有问题,因为服务器提供的证书被任何浏览器的默认设置接受而无需做任何事情。
现在我正在尝试用 Java 为该服务器提供的其余 API 创建一个客户端。
问题是抛出到所请求目标的 sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path
。如果我理解正确,这意味着 JDK 支持的 ca 不提供允许正确验证服务器的有效证书路径。
在仍然能够对服务器进行身份验证的同时,什么是解决此错误的好方法?为什么 Web 浏览器能够验证服务器而不是 JDK (7)?
最佳答案
它在浏览器中工作,因为 CA 证书在浏览器的 key 环中,而不在 JDK 使用的 key 环中。
使用 keytool
将您的 CA 证书添加到 JDK key 环:
keytool -keystore cacerts -importcert -alias aliasOfTheCertificate -file FileNameOfTheCertificate.cer
从命令行。请注意,许多 Linux 发行版已经发布了包含所有受信任根的 ca-certs-java 包,如果可能请尝试使用它。
关于java - 如何用公共(public) CA 机构签署的服务器公共(public)证书解决 "unable to find valid certification path to requested target"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19259178/
我有一个包含 JSON 数组的 JSON 文件 测试文件 [ { "Name": "Bob" }, { "Age": "37" }, { "DOB": "12/01/1985"} ] 我想
我是一名优秀的程序员,十分优秀!