SSL_RSA_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_AES_256_CBC_SHA, SSL_DHE_RSA_WITH_AES_128_CBC_SHA, SSL_DHE_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA
服务器发送“Server”,选择“TLS_RSA_WITH_AES_128_CBC_SHA 0x002f”,在大约1,5毫秒后,服务器发送致命警报(握手失败(40))。
我们能解释一下握手失败的原因吗?这是因为TLS_RSA_WITH_AES_128_CBC_SHA没有包含在客户端密码列表中吗?
发布于 2020-04-27 15:56:28
SSL fatal error, handshake failure 40
表示由于客户端和服务器无法就连接设置达成一致,安全连接无法建立。通常是因为客户端或服务器太老,只支持已删除的协议/密码。
按历史顺序,协议为SSLv2、SSLv3、TLS 1.0、TLS 1.2、TLS 1.3。
根据您提供的调试信息和密码名称:
在这种特殊情况下,服务器运行在废弃的SSL上,急需升级。看起来像java 6上的tomcat 6,在那时(2015年)确实过时了。
如果你在2020年或以后阅读这篇文章的话,可以使用。使https工作的java的绝对最低版本是java 8(完全支持TLS 1.2)。
尝试curl --tlsv1.2 https://example.org
测试web服务器支持哪个版本的TLS,curl --help
测试哪些版本是curl支持的。请注意,到2020年,只有TLS 1.2得到广泛支持,而TLS 1.3正在逐步推出。可能很难获得一个版本的curl/openssl,该版本可以用于测试较旧的SSL/TLS变体,由于(严重的)安全漏洞,它们都是逐步停用的。
https://stackoverflow.com/questions/24309385
复制相似问题