繁体   English   中英

SSLPeerUnverifiedException:peer未经过身份验证

[英]SSLPeerUnverifiedException: peer not authenticated

再一次,SSLPeerUnverified的沉闷问题,但我没有使用自签名证书。 我尝试使用https连接到主机。 该主机具有正确的证书,Firefox和HttpsUrlConnection都没有任何问题。 无论如何尝试使用HttpClient进行连接,我都会遇到可怕的异常。

有线索吗? 或者提示哪里看得更近?

谢谢!

编辑:调试输出

main,处理异常:

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

main,getSession()中的IOException:

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

您似乎需要将证书导入JVM正在使用的可信密钥库中。 如果您未在应用程序中使用其他可信密钥库,则这将是“cacerts”。

您可以按照“ 如何修复SSLPeerUnverifiedException:peer未经过身份验证的Groovy / Java中的异常 ”中的分步指南进行操作。

精简版:

  1. 运行以下命令,将$ADDRESS替换$ADDRESS URL,减去“https://”:

     echo -n | openssl s_client -connect $ADDRESS:443 | \\ sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/$ADDRESS.cert 
  2. 运行以下命令,将$ALIAS替换为密钥的短名称,将$ADDRESS替换为上面的证书名称,将$PATH替换为JRE中的cacerts路径。

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

以前的答案链接不起作用,所以我附加额外的:

https://blogs.oracle.com/java-platform-group/entry/self_signed_certificates_for_a

暂无
暂无

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

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