car*_*ine 2 java https http-put sslhandshakeexception
我试图使用HttpsURLConnection,然后执行PUT请求与网站建立HTTPS连接.当我尝试创建OutputStreamWriterfrom时HttpsURLConnection.getOutputStream(),抛出以下异常:
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
Run Code Online (Sandbox Code Playgroud)
该页面刚刚获得了证书(由StartCom发布) - 我是否需要手动执行某些操作以使Java识别证书现在存在?我可以毫无困难地连接到同一网站的其他页面,但他们有不同的证书.
您可以将StartCom yia的根证书从工具keytool(从JDK)导入Java密钥库(JKS),然后将密钥库设置为"可信存储".
请参阅:"导出和导入证书"部分:
http://java.sun.com/developer/technicalArticles/Security/secureinternet2/
该文章中提到的命令:
将certifificate导入trustedcerts.jks:
keytool -import -keystore trustedcerts.jks -alias qusay -file server.crt
Run Code Online (Sandbox Code Playgroud)
使用自定义tuststore启动Java:
java -Djavax.net.ssl.trustStore=trustedcerts.jks com.example.MyClass
Run Code Online (Sandbox Code Playgroud)
或者,您可以在运行时设置信任库:
System.setProperty("javax.net.ssl.trustStore","./trustedcerts.jks");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3045 次 |
| 最近记录: |