SSLHandshakeException错误解决方案

1、错误提示

调用Http工具报如下异常信息:

sh 复制代码
cn.hutool.core.io.IORuntimeException: SSLHandshakeException: Received fatal alert: handshake_failure
2、查询问题

一开始我以为是代码bug,网络bug甚至是配置环境未生效,找了一大圈,发现同事可以运行后,才想到可能是版本冲突。

3、开发环境

开发语言:java

jdk:1.8.0_121

依赖包:hutool-all:5.7.16

4、解决思路

于是打开官网,查询解决方案,发现属于JDK版本中安全机制导致,不同https安全协议不一致,TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。

ssl握手过程中使用了jdk8默认的ssl协议TLSv1.2,并且jdk8默认的Cipher Suites禁用了RC4算法。最终导致握手失败。

查阅资料,确定是由于JDK版本问题,测试项目中使用jdk8-121版本使用hutools中的HttpUtil.post会出现这种异常。

于是,升级jdk版本,更新为jdk1.8.0_181版本后,异常解决了。

5、官网地址

jdk下载地址:Index of java-local/jdk/8u181-b13

hutool官网地址:常见问题解决方案 | Hutool

根据自己环境下载对应的版本,我的电脑是64位Windows系统,选的最后一个哦。

相关推荐
幽弥千月2 小时前
【ELK】ES单节点升级为集群并开启https【亲测可用】
elk·elasticsearch·https
ZHOUPUYU3 小时前
最新 neo4j 5.26版本下载安装配置步骤【附安装包】
java·后端·jdk·nosql·数据库开发·neo4j·图形数据库
Q_19284999064 小时前
基于Spring Boot的找律师系统
java·spring boot·后端
谢家小布柔5 小时前
Git图形界面以及idea中集合Git使用
java·git
loop lee5 小时前
Nginx - 负载均衡及其配置(Balance)
java·开发语言·github
smileSunshineMan5 小时前
vertx idea快速使用
java·ide·intellij-idea·vertx
阿乾之铭5 小时前
IntelliJ IDEA中的语言级别版本与目标字节码版本配置
java·ide·intellij-idea
toto4125 小时前
线程安全与线程不安全
java·开发语言·安全
筏镜6 小时前
调整docker bridge地址冲突,通过bip调整 bridge地址
java·docker·eureka
winner88816 小时前
git merge 冲突 解决 show case
java·git·git merge·git冲突