建立连接时异常: handshake_failure
排查问题第一步:
1)首先在idea的 Run -> Edit Configrations增加
-Djavax.net.debug=all
可以按照下图保存文件。
2)开始请求查看文件或者控制台
main, WRITE: TLSv1.2 Handshake, length = 217 #客户端发送
[Raw write]: length = 22
main, READ: TLSv1.2 Alert, length = 2 #服务端
main, RECV TLSv1 ALERT: fatal, handshake_failure
发现,服务端要接收TLSv1.2,但是客户端发送的是TLSv1 。
(JDK7默认的是TLSv1 ,JDK8默认的是TLSv1.2)
3)解决方法:
11)可以更改JDK版本
22)可以在代码中设置
SSLContext sslContext = SSLContext.getInstance("TLSv1.2");