Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
信任windows 7上java 7的自签名证书_Java_Windows_Ssl_Ssl Certificate - Fatal编程技术网

信任windows 7上java 7的自签名证书

信任windows 7上java 7的自签名证书,java,windows,ssl,ssl-certificate,Java,Windows,Ssl,Ssl Certificate,我正在尝试使用Java7(在Windows7上)中的HttpsURLConnection连接到远程web服务器并发送post请求。除了它不信任证书(它是自签名的)这一事实之外,一切似乎都正常 我已经通过chrome导出了证书,然后将证书导入密钥库,其中包含以下内容: keytool -import -file mysslcertificate.cer 如果我运行keytool-list,证书就在那里 在导入证书后尝试运行它(使用gradle或eclipse)时,会出现以下异常: javax.n

我正在尝试使用Java7(在Windows7上)中的HttpsURLConnection连接到远程web服务器并发送post请求。除了它不信任证书(它是自签名的)这一事实之外,一切似乎都正常

我已经通过chrome导出了证书,然后将证书导入密钥库,其中包含以下内容:

keytool -import -file mysslcertificate.cer
如果我运行
keytool-list
,证书就在那里

在导入证书后尝试运行它(使用gradle或eclipse)时,会出现以下异常:

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

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

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


有人有什么建议吗?

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

java-Djavax.net.ssl.trustStore=-Djavax.net.ssl.trustStorePassword=

Eclipse和Gradle可能有特定的设置来将密钥库位置转发给Java

另见:


完全正确。我不得不改用javax.net.ssl.trustStore/javax.net.ssl.trustStorePassword。