繁体   English   中英

Java HttpsURLConnection SSLHandshakeException

[英]Java HttpsURLConnection SSLHandshakeException

我正在尝试使用HttpsURLConnection与网站建立 HTTPS 连接,然后执行 PUT 请求。 当我尝试从HttpsURLConnection.getOutputStream()创建OutputStreamWriter时,会引发以下异常:

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

该页面刚刚获得其证书(由 StartCom 颁发) - 我是否需要手动执行某些操作以使 Java 识别证书现在存在? 我可以毫无困难地连接到同一网站的其他页面,但它们的证书不同。

您可以使用工具 keytool(来自 JDK)将 StartCom 的根证书导入 Java 密钥库(JKS),然后将密钥库设置为“受信任的存储”。

请参阅“导出和导入证书”部分:

http://java.sun.com/developer/technicalArticles/Security/secureinternet2/

那篇文章中提到的命令:

将证书导入到trustedcerts.jks:

keytool -import -keystore trustedcerts.jks -alias qusay -file server.crt

使用自定义 tuststore 启动 Java:

java -Djavax.net.ssl.trustStore=trustedcerts.jks com.example.MyClass

或者,您可以在运行时设置信任库:

System.setProperty("javax.net.ssl.trustStore","./trustedcerts.jks");

另请参阅此问题:在 Windows JRE 中导入 StartCom CA 证书

它链接到一个脚本,用于将 StartCom 证书导入您的 JDK 可信存储。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM