当前位置: 首页 > 知识库问答 >
问题:

SSLPeerunVerifiedException:对等体未经过身份验证

勾海超
2023-03-14

再说一遍,SSLPeerunverificed的沉闷问题,但我没有使用自签名证书。我尝试使用HTTPS连接到主机。此主机具有正确的证书,Firefox和HttpsUrlConnection都没有任何问题。然而,在尝试使用HttpClient进行连接时,我遇到了可怕的异常。

有线索吗?还是小费在哪里看得更近?

谢了!

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
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

共有1个答案

章翔宇
2023-03-14

您似乎需要将证书导入到JVM正在使用的可信密钥库中。如果您没有在应用程序中使用不同的受信任密钥存储,这将是“CACERTS”。

您可以按照“如何修复Groovy/Java中的'SSLPeerUnverifiedException:peer not Authenticated'异常”中的一个分步指南进行操作。

简短版本:

>

  • 运行以下命令,用URL替换$address,减去“https://”:

    echo -n | openssl s_client -connect $ADDRESS:443 | \
      sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/$ADDRESS.cert
    

    运行以下命令,将$alias替换为键的短名称,$address替换为上面的证书名,$path替换为JRE中的cacerts的路径。

     sudo keytool -importcert -alias "$ALIAS" -file /tmp/$ADDRESS.cert \
       -keystore $PATH/cacerts -storepass changeit
    

  •  类似资料:
    • 我有一个服务,它公开了一个API我想测试。我在localhost上运行该服务,它有一个自签名证书。 我将。p12文件添加到test/resources和: 还增加了这个: restassured.config().sslconfig(sslconfig.sslconfig().AllowAllHostNames()); 但是,我得到以下错误: javax.net.ssl.sslpeerunveri

    • 我想在我的工作电脑上安装竹代理。我已经下载了jar文件,并尝试使用以下语法运行它 我得到错误javax.net.ssl.sslpeerunverifiedException:peer未经过身份验证。 这个错误的来源对我来说是清楚的--我们有一个自签名的SSL Sertificate。我尝试使用以下参数运行 但它并不起作用。 我尝试使用这个链接添加证书Java keytool从URL/端口添加服务器

    • 我有Geo Trust签署的https证书。所有浏览器打开我的网站非常好。我的应用程序通过https授权,大多数时候一切都好。但有时用户无法连接并出现错误: 上一个用户拥有Windows7x86和Java1.7_45u。它发生在随机的OSs和随机的java更新上,我不知道原因。有时它不会发生,但通常如果用户有这样的错误没有帮助。 我不能添加证书到用户的密钥,因为这是用户应用程序。 目标url是au

    • 我有一个应用程序jar,我正在使用DefaultHTTPClient类对象调用HTTPS url,但它给出的对等体不是authenticate异常,所以我想使用Keystore对jar进行签名。 根据@Duncan,我可以通过引用这个链接导入JVM中的。cer文件…我使用belloed命令将.cer导入到cacerts中 在此之后,我输入“Y”以信任证书 之后,我运行我的应用程序,但它仍然给我 堆

    • 问题内容: 从gradle 2.0升级到2.1时,您可能会看到以下错误。 公平地说,此错误不是由于gradle而引起的。这是java如何处理ssl连接的问题。 我正在使用以下Java版本。 您可以使用以下答案将安全证书导入Java安装。 我不在乎https下载,http对我来说足够了。所以看我的答案。 问题答案: 将您的存储库语法更改为以下之一 当前(2.1)gradle文档声称 我认为Maven