我正在访问网络服务。当我在浏览器中访问 Web 服务的 URL 时,证书已签名并自动被接受。
我不明白的是,当我使用 Java 访问 Web 服务时,我得到了类似以下内容的信息:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
我想这意味着证书没有签名,但它是。
com.sun.net.ssl.internal.ssl
不会自动转到证书颁发机构并检查证书是否已签名吗?如果没有,是否需要另外设置一些东西才能执行此操作?
最佳答案
检查不仅仅是签名。除其他事项外,必须验证生成签名的证书颁发机构。 Java 的受信任证书颁发机构列表与您的浏览器不同。您可能需要使用浏览器下载 CA 证书并使用 Java 的 key 工具进行安装。
关于java - 为什么使用 Java 时签名证书会导致握手失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12725827/