java - 为什么使用 Java 时签名证书会导致握手失败?

标签 java ssl self-signed

我正在访问网络服务。当我在浏览器中访问 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/

相关文章:

node.js - NodeJS 无法读取 ubuntu 中的默认 CA

node.js - socket.io 502 错误

iis - 即使添加到 curl-ca-bundle.crt,curl openssl 也无法验证 IIS 7 自签名证书

java - 无法引用 PersonsRepository 接口(interface)的实例

java - 如何通过 Selenium 和 Java 根据值单击多个复选框

java - 使用触摸事件移动 View

java - android - android studio 模拟器中的 SSL 问题,在手机上工作正常

Angular https 调用自签名 uri 失败,出现 "net::ERR_CERT_AUTHORITY_INVALID"

ssl - 使用 JSSE (Javase6) 和自签名证书设置 SSL 连接

java - 使用数组无法访问代码,无法找出原因