javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated 解决办法

本文介绍了解决HTTPS证书引发的系统启动与交互错误的方法。证书供应商建议手动导入CFCA根证书到Java环境中以解决该问题。文章详细描述了证书树形结构及验证流程,并提供了在Windows和Linux环境下使用keytool命令导入、查看和删除证书的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

更换https证书,部分系统启动和交互出现此错误,证书厂商给的解释说是要手动向java环境中导入CFCA根证书,导入后恢复正常

关于Java根信任

一、根信任
证书通常采用树形结构,根证书是树的最高级证书,其私钥用于对其他证书进行签名。以三级树形结构为例,由根证书签名的证书称为中间证书,其继承根证书的可信赖性。中间证书对用户证书进行签名,其可信度依赖于根证书。

在这里插入图片描述

二、服务器证书验证
在这里插入图片描述

以单向SSL验证过程进行说明:
①客户端请求访问https资源;
②Web服务器将其证书连同中间证书提供给客户端;
③客户端验证服务器的证书有效性,涉及:有效期、吊销检测、CN与访问是否一致、根信任等。
根信任过程:
服务证书—>中间证书—>根证书—>根证书是否在本地根信任库中?

三、Java根信任库
Java根信任库位于:$ JAVA_HOME/lib/security/cacerts。
当前Java暂未将CFCA根证书添加至其根证书信任库中,CFCA正在以多种途径去完成Java入根。

四、手动导入根证书
Java支持手动导入根证书,客户端导入一次即可。
注意:请先根据环境修改以下:CFCA_EV_ROOT.cer 和 cacerts路径

Windows:
导入:
keytool -import -v -trustcacerts -alias “cfcaevroot [jdk]” -file D:\CFCA_EV_ROOT.cer -storepass changeit -keystore “C:\Program Files\Java\jdk1.8.0_181\jre\lib\security\cacerts”
查看:
keytool -list -v -alias “cfcaevroot [jdk]” -keystore “C:\Program Files\Java\jdk1.8.0_181\jre\lib\security\cacerts” -storepass changeit
删除:
keytool -delete -alias “cfcaevroot [jdk]” -keystore “C:\Program Files\Java\jdk1.8.0_181\jre\lib\security\cacerts” -storepass changeit

linux:
导入:
keytool -import -v -trustcacerts -alias “cfcaevroot [jdk]” -file /home/CFCA_EV_ROOT.cer -storepass changeit -keystore “/home/jdk1.8.0_181/jre/lib/security/cacerts”
查看:
keytool -list -v -alias “cfcaevroot [jdk]” -keystore “/home/jdk1.8.0_181/jre/lib/security/cacerts” -storepass changeit
删除:
keytool -delete -alias “cfcaevroot [jdk]” -keystore “/home/jdk1.8.0_181/jre/lib/security/cacerts” -storepass changeit

导入后如下图
在这里插入图片描述
输入yes,成功

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值