javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated 解决办法 - Go语言中文社区

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


更换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 FilesJavajdk1.8.0_181jrelibsecuritycacerts”
查看:
keytool -list -v -alias “cfcaevroot [jdk]” -keystore “C:Program FilesJavajdk1.8.0_181jrelibsecuritycacerts” -storepass changeit
删除:
keytool -delete -alias “cfcaevroot [jdk]” -keystore “C:Program FilesJavajdk1.8.0_181jrelibsecuritycacerts” -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,成功

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/FANHAOM/article/details/110949015
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-16 12:29:02
  • 阅读 ( 407 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢