如何把安全证书导入到java中的cacerts证书库

提示: 
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
 
 Windows导入信任证书:

每一步:进入某个https://www.xxx.com开头的网站,把要导入的证书下载,
    在该网页上右键 >> 属性 >> 点击"证书" >>
    再点击上面的"详细信息"切换栏 >>
    再点击右下角那个"复制到文件"的按钮
    就会弹出一个证书导出的向导对话框,按提示一步一步完成就行了。
    例如:保存为wcceca.cer, 放在d盘下

第二步:如何把上面那步的(wcceca.cer)这个证书导入java中的cacerts证书库里?

         如:我的 jdk安装这个目录在

       D:\Program Files\Java\jdk1.8.0_191

开始 >> 运行 >> 输入cmd 进入dos命令行 >>
再用cd进入到D:\Program Files\Java\jdk1.8.0_191\jre\lib\security这个目录下
敲入如下命令回车执行

keytool -import -alias cacerts -keystore cacerts -file D:\wcceca.cer

keytool -import -trustcacerts -alias casserver -file F:\test.cer -keystore "D:\Program Files\Java\jdk1.8.0_191\jre\lib\security\cacerts"

你敲入changeit就行了,这java中cacerts证书库的默认密码,

导入后用-list查看

keytool -list -keystore cacerts

以后更新时,先删除原来的证书,然后导入新的证书
keytool -delete -alias akazam_email -keystore cacerts
keytool -import -alias akazam_email -file akazam_email.cer -keystore cacerts

注意JAVA_HOME设置中如果有空格,会java执行错误,可以把环境变量JAVA_HOME中C:\Program Files缩写为C:\Progra~1

 

Linux 导入信任证书:
1.查看jdk环境变量
echo $JAVA_HOME
2.cd /usr/java/jdk1.8.0_161/jre/lib/security
3.keytool -import -v -trustcacerts -alias sxdzswj -file /www/dzswj.cer -storepass changeit -keystore cacerts

1.查看某个证书,注grep 后面的 sxdzswj 即为上面导入证书时的别名
keytool -list -keystore cacerts | grep sxdzswj
2.查看目前环境下的证书
keytool -list -keystore cacerts
3. 删除某个已安装的证书 sxdjswj :即为上面导入证书时的别名
keytool -delete -alias sxdzswj -keystore cacerts

 

posted @ 2023-03-17 11:30  金虹巴巴  阅读(360)  评论(0编辑  收藏  举报