【笔记】记一次HTTPS请求SSLHandshakeException: Received fatal alert: handshake_failure异常问题

前言

最近在项目中使用Hutools 请求HTTPS接口出现SSLHandshakeException: Received fatal alert: handshake_failure异常,经过排查属于JDK版本中安全机制导致,不同https安全协议不一致,可能是TLSv1.2,TLSv1.1,TLSv1.3等,TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差
查询证书安全协议方式: openssl s_client -connect 你的域名:443
在这里插入图片描述

分析和解决

ssl握手过程中使用了jdk8默认的ssl协议TLSv1.2,并且jdk8默认的Cipher Suites禁用了RC4算法。最终导致握手失败。
查阅资料,确定是由于JDK版本问题,测试项目中使用jdk8-121版本使用hutools中的HttpUtil.post会出现这种异常,最终升级了JDK8-401解决问题。

总结

其他解决思路,但是未尝试,有兴趣可以尝试
1、在请求HTTP的时候尝试创建SSLConnectionSocketFactory的时候添加安全协议;
2、对方的Nginx配置Https的时候是否可以尝试放开某些协议通过。
如: #ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
#表示优先使用服务端加密套件。默认开启
ssl_prefer_server_ciphers on;

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值