gpt4 book ai didi

java - 客户端 Hello 后的 SSL 握手 fatal error

转载 作者:行者123 更新时间:2023-12-04 22:43:48 26 4
gpt4 key购买 nike

我正在尝试对由内部 CA 签名的服务器进行 https 调用。尽管在信任库中添加了根证书,但我仍无法使其正常工作,因此我将 trustManager 设置为信任所有证书并暂时禁用主机名验证。curl --insecure通话有效。
-Djavax.net.debug=all , 客户端打招呼后握手失败

*** ClientHello, TLSv1 ... ... main, READ: TLSv1 Alert, length = 2 main, RECV TLSv1 ALERT: fatal, handshake_failure main, called closeSocket() main, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure main, called close() main, called closeInternal(true)



堆栈跟踪是:

javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) at sun.security.ssl.Alerts.getSSLException(Alerts.java:154) at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1959) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323)



我正在使用 SSL 上下文
SSLContext sslContext = SSLContext.getInstance("TLS");

任何帮助将不胜感激。

PS:我用的是 java7

最佳答案

4年后为我自己的问题添加答案。

我不记得确切的问题是什么,但握手失败并没有单一的原因——在 ClientHello 之后发生握手失败的最可能原因是客户端和服务器无法就通用协议(protocol)或密码套件达成一致继续握手。

调试此类 SSL 问题的最简单选项是使用 tcpdump 捕获网络流量并在 Wireshark 中对其进行分析。我们可以检查 ClientHello 并找出正在使用的协议(protocol)是什么,它宣传支持的密码套件等。

关于java - 客户端 Hello 后的 SSL 握手 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35041738/

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