gpt4 book ai didi

java - 接收 SSLHandshakeException : handshake_failure despite my client ignoring all certs

转载 作者:太空宇宙 更新时间:2023-11-03 14:39:55 25 4
gpt4 key购买 nike

我有一个 Java 程序,它使用 SSL/TLS 连接到网络服务器,并通过该连接发送各种 HTTP 请求。服务器是本地主机并使用自签名证书,但我的代码使用自定义 TrustManagers,并忽略无效证书。到目前为止,它一直运行良好。

服务器上唯一的区别是它以前运行的是jboss 6,现在运行的是jboss 7。我不确定这是配置问题,还是我的代码有问题,但我得到了如果我尝试使用其他基于 Java 的程序(如 WebScarab 或 ZAP)进行连接,则会出现同样的错误。

无论如何,我可以对我的代码做些什么来解决这个问题吗?这是完整的错误:

Received fatal alert: handshake_failure
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)

这是失败前的调试信息:

main, WRITE: TLSv1 Handshake, length = 75
main, WRITE: SSLv2 client hello message, length = 101
main, READ: TLSv1 Alert, length = 2
main, RECV TLSv1 ALERT: fatal, handshake_failure

最佳答案

所以我发现了问题。 Java 中可能存在错误,但客户端似乎启动了 TLSv1 握手,但随后发送了 SSLv2 客户端问候消息,此时服务器拒绝了连接。

即使您使用 TLS 实例创建 SSLContext,也会发生这种情况:

SSLContext sslContext = SSLContext.getInstance("TLS");

解决方案是在进行任何连接尝试之前设置系统属性:

System.setProperty("https.protocols", "TLSv1");

可能还有其他解决方案,但这个对我有用。

关于java - 接收 SSLHandshakeException : handshake_failure despite my client ignoring all certs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44064023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com