gpt4 book ai didi

java - 恢复缓存 session 时握手期间出现 SSLException

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:58:19 28 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
SSL handshake alert: unrecognized_name error since upgrade to Java 1.7.0

我的 J2SE 应用程序使用 HttpsUrlConnection 访问安全位置。在我将我的 JRE 更新到 1.7 之前,它曾经工作得很好。现在我得到“握手期间远程主机关闭连接”SSLException。使用 -Djavax.net.debug=ssl:handshake 运行应用程序后,在 JRE 1.6 和 JRE 1.7 下,我的印象是在 1.7 下缓存的客户端 session 无法恢复。

更新:我已经了解到,在 JRE 1.6 下,我的客户端应用程序使用 SSLv2Hello 封装。但是,它在 JRE 1.7 下不这样做,这很可能是导致异常的原因。我现在的问题是:如何为运行在 JRE 1.7 上的客户端启用 SSLv2Hello 封装?

更新#2:SSLv2Hello 通过 System.setProperty("https.protocols", "TLSv1,SSLv2Hello") 在 JRE 7 上完成。然而,这并没有使握手异常消失。事实证明,异常的真正原因是密码套件。在 JRE 6 上,服务器从客户端的选项中选择 SSL_RSA_WITH_RC4_128_MD5,而在 JRE 7 上,它始终与 TLS_DHE_RSA_WITH_AES_128_CBC_SHA 一起使用。由于某种原因,服务器无法使用 TLS_DHE_RSA_WITH_AES_128_CBC_SHA 恢复缓存 session 。使用 System.setProperty("https.cipherSuites", suggestedCipherSuites) 修补的问题,其中 suggestedCipherSuites 始终以 SSL_RSA_WITH_RC4_128_MD5 开头。这种方法有什么缺点吗?

更新 #3:客户端的 SNI 扩展是困扰服务器的地方。请参阅 http://docs.oracle.com/javase/7/docs/technotes/guides/security/enhancements7.html 上的“JSSE 客户端的服务器名称指示 (SNI)”

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