搞定 javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 问题!

本文总结了处理javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure异常的三种方法:检查协议版本是否一致,解决JCE包的安全性限制,以及重新导入CA证书到JDK。通过分析握手失败的原因,提供了针对性的解决方案。
摘要由CSDN通过智能技术生成

开始碰到这个问题找遍了各种方法,其实还是需要耐心的先搞清楚原因再想方法靠谱,这里也总结下这个异常的多种解决方案,

首先先理解下为什么出现handshake?字面理解是客户端与服务端握手失败,能导致握手失败的原因是什么?

一.协议版本不同

首先是两边版本协议不一致,例如客户端可能是jdk7 /jdk8 它们支持的协议参考这里https://emacsist.github.io/2017/03/02/https.protocols%E5%9C%A8java%E4%B8%AD%E7%9A%84%E4%BD%BF%E7%94%A8/

可以在运行时加上 -Djavax.net.debug=all 参数 能够看到服务器与客户端之间的协议,如下图:

 

main, WRITE: TLSv1.2 Handshake, length = 88
[Raw write]: length = 93
0000: 16 03 03 00 58 01 00 00   54 03 03 5D E7 98 04 87  ....X...T..]....
0010: BF 47 63 0F 9E C1 B6 BA   BF 39 05 78 28 00 54 87  .Gc......9.x(.T.
0020: 55 F5 71 B2 7B DF 8B E7   55 0A E4 00 00 02 00 35  U.q.....U......5
0030: 01 00 00 29 00 0D 00 1C   00 1A 06 03 06 01 05 03  ...)............
0040: 05 01 04 03 04 01 04 02   03 03 03 0
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值