java ssl handshake_failure问题

时间:2017-08-02 17:33:54

标签: java ssl ssl-certificate

我正在尝试向我们的某个服务器网址发送请求,但每当我尝试连接时,我都会获得此预期

java.net.ConnectException: Received fatal alert: handshake_failure

这是我访问网站时从浏览器获得的证书详细信息。

Common Name (CN)    Go Daddy Secure Certificate Authority - G2
Organisation (O)    GoDaddy.com, Inc.
Organisational Unit (OU)    http://certs.godaddy.com/repository/

我在我的java目录

中的cacerts中检查了相同的详细信息
keytool -list -keystore /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.24.amzn1.x86_64/jre/lib/security/cacerts | grep godaddy

godaddyclass2ca, 23 Sep, 2016, trustedCertEntry, 
godaddyrootcertificateauthority-g2, 23 Sep, 2016, trustedCertEntry,

这是已安装的java版本:

openjdk version "1.8.0_101"
OpenJDK Runtime Environment (build 1.8.0_101-b13)
OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)

我甚至从浏览器下载了证书并将其导入cacerts

keytool -import -keystore cacerts -file test.cer

请帮我调试一下。

1 个答案:

答案 0 :(得分:0)

您需要为您的JVM安装JCE扩展。基本上这个问题是由于您的本地JAVA和https站点之间的密码不匹配造成的。

使用https://www.ssllabs.com/检查您的REST API是否支持java check this image example

如果显示如下,您可以从http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html下载文件。完成后,将JRE的lib / security目录下的两个JAR(local_policy.jar,US_export_policy.jar)替换为下载的包中的JAR。

如果没有,请提供更多详细信息,以便我们详细检查。

在这里检查解决方案我只是累了How to debug the ssl connection error,它对我有用并节省了我的一天!