任何人都知道如何在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)
答案 0 :(得分:2)
使用SSL Labs之类的工具检查服务器与默认Java 1.7和1.8客户端的模拟握手。您看到的握手错误可能与TLS版本无关(因为也支持TLSv1.0的TLSv1.2客户端应该能够与仅使用TLSv1.0进行通信的服务器进行通信),并且很可能是由于服务器使用Java 1.8不再支持的密码套件(例如,RC4)。