SSLHandshakeException:收到致命警报:handshake_failure

Posted

技术标签:

【中文标题】SSLHandshakeException:收到致命警报:handshake_failure【英文标题】:SSLHandshakeException: Received fatal alert: handshake_failure 【发布时间】:2012-10-15 14:44:39 【问题描述】:

我们在尝试连接服务器时收到此 java SSL 错误。在运行应用程序时,我们收到此错误,然后我们必须重新启动应用程序以使其再次可用。有人可以帮忙吗?

at java.lang.Thread.run(Thread.java:662)
Caused by: com.sun.xml.internal.ws.wsdl.parser.InaccessibleWSDLException: 2 counts of InaccessibleWSDLException.
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:161)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:133)
at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:254)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:217)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:165)
at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:93)
at javax.xml.ws.Service.<init>(Service.java:56) 

【问题讨论】:

请使用 -Djavax.net.debug=ssl 运行您的代码,握手并在此处发布结果输出。 感谢 EJP。我们有时会在生产服务器上收到此错误,并且在重新启动后再次正常工作。在本地它工作正常,但我正在尝试复制它,所以一旦我在本地得到它,我会提供它 【参考方案1】:

因为我遇到了类似的问题,所以从here 接了过来。

当您尝试连接的服务器没有来自授权 CA 的有效证书时,通常会引发 javax.net.ssl.SSLHandshakeException 异常。

简而言之,您尝试连接的服务器很可能使用自签名证书,您必须在 Java 代码中适应这一点。这涉及创建自定义 KeyStore 等。

我所做的只是向服务器提供密钥库和密钥库密码(在系统属性中设置)并且异常消失了。

javax.net.ssl.keyStore=../keystore/keystoreFile.jks
javax.net.ssl.keyStorePassword=yourPassword
javax.net.ssl.trustStore=../keystore/keystoreFile.jks
javax.net.ssl.trustStorePassword=yourPassword
javax.net.debug=true

你可以使用keytool生成keystore(在jdk/bin/keytool)

keytool -genkey -alias myKeyStore -keyalg RSA -keystore /home/aniket/keystore/keystoreFile.jks

【讨论】:

握手失败的原因大约有 11 个。永远不要对密钥库和信任库使用同一个文件。

以上是关于SSLHandshakeException:收到致命警报:handshake_failure的主要内容,如果未能解决你的问题,请参考以下文章

当程序在 IntelliJ 中运行时,为啥我会收到 SSLHandshakeException 作为 JAR?

Apple Pay 证书更新 | SSLHandshakeException:收到致命警报:handshake_failure

ChangeCipherSpec - javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure

无法下载站点地图:SSLHandshakeException:收到致命警报:handshake_failure

javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure

获取 javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure 错误