2023-04-07 nested exception is javax.net.ssl.SSLHandshakeException: Received fatal alert: handsh...

handshake_failure 异常及解决

异常

I/O error on POST request for "https://lxxxxx/api/v1/updown/xxxxloadUrl": Received fatal alert: handshake_failure; nested exception is javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

1. 原因分析

1.1原因总结:

 JDK8u161以后的版本,默认使用unlimited无限强度的策略(policy);支持的加密算法更多
 以TLSv1.2 ,加密套件ECDHE-RSA-AES256-GCM-SHA384  建立socket链接,需要使用unlimited的策略;
 
 JDK8u161以前的版本  使用limited有限强度策略(policy),支持的算法有限
 无法以TLSv1.2 ,加密套件ECDHE-RSA-AES256-GCM-SHA384 建立socket链接,握手失败;

1.2 jdk1.8.0_361 security

image-20230406161627241.png

1.3 jdk1.8.0_66 security

image-20230406162012751.png

1.4 二者对比

image-20230406161947056.png

2.调整

// JDK升级到 JDK8u161以后的版本可以解决使用(亲测有效);对于JDK8u161以前的版本可以以javase-jce补丁的形式也可以解决(未验证);

2.1 调整JDK(升级到JDK8u161以后的版本)

// 升级到JDK8u161以后的版本
FROM openjdk:8-jdk-alpine
#FROM primetoninc/jdk:1.8
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar

2.2 升级补丁(若无法升级JDK,JDK8u161以前的版本打补丁)

// JDK8u161以前的版本,下载
https://www.oracle.com/java/technologies/javase-jce8-downloads.html
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容