任何人都知道如何在 JRE 8 中禁用 TLSv1.2 和 1.1 并只允许使用 TLSv1。我已经尝试过 -Djdk.tls.client.protocols="TLSv1"参数但没有运气。当我查看输出的 SSL 调试器时,我可以看到仍在使用 V1.2
00E0: 05 01 04 03 04 01 03 03 03 01 02 03 02 01 02 02 ................
[Raw read]: length = 5
0000: 15 03 01 00 02 .....
[Raw read]: length = 2
0000: 02 28 .(
AWT-EventQueue-0, READ: TLSv1 Alert, length = 2
AWT-EventQueue-0, RECV **TLSv1.2 ALERT: fatal, handshake_failure**
AWT-EventQueue-0, called closeSocket()
AWT-EventQueue-0, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
AWT-EventQueue-0, called close()
AWT-EventQueue-0, called closeInternal(true)
最佳答案
使用 SSL Labs 等工具检查服务器与默认 Java 1.7 和 1.8 客户端的模拟握手.您看到的握手错误可能与 TLS 版本无关(因为也支持 TLSv1.0 的 TLSv1.2 客户端应该能够与仅使用 TLSv1.0 进行通信的服务器进行通信)并且很可能是由于服务器使用 Java 1.8 不再支持的密码套件(例如 RC4)。
关于java - 如何在 Java 8 中禁用 TLSv1.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36685426/