1

我正在尝试使用 java 7(在 Windows 7 上)中的 HttpsURLConnection 连接到远程 Web 服务器并发送发布请求。除了它不信任证书(它是自签名的)之外,一切似乎都有效。

我已经通过 chrome 导出了证书,然后将证书导入到密钥库中:

keytool -import -file mysslcertificate.cer

如果我运行,证书就在那里keytool -list

当我在导入证书后尝试运行它(使用 gradle 或 eclipse)时,我得到了这个异常:

javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

原因:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

原因:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

有人有任何提示吗?

4

1 回答 1

2

很可能,Java 没有使用您在其中导入证书的密钥库。要告诉 Java 在哪里可以找到密钥库,请使用以下命令行参数:

java -Djavax.net.ssl.trustStore=<path to keystore file> -Djavax.net.ssl.trustStorePassword=<keystore password>

Eclipse 和 Gradle 可能具有将密钥库位置转发到 Java 的特定设置。

也可以看看:

于 2013-03-22T10:29:25.930 回答