记录一个java报错,和域名证书有关:unable to find valid certification path to requested target

完整报错如下:

sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

解决方法:

在Linux系统上,将自签名或非默认信任的证书添加到Java的信任存储库(cacerts文件)的具体步骤如下:
**1. 准备证书**
确保你拥有一个需要导入的证书文件,通常是PEM格式。如果证书不是PEM格式,可能需要先将其转换为PEM格式
**2. 找到keytool工具**
通常,如果你安装了JDK,keytool 工具会位于 /usr/lib/jvm/java-版本号-openjdk-amd64/bin/ 或 /usr/lib/jvm/java-8-oracle/bin/ 等路径下,具体路径取决于你的Java环境。
**3. 导入证书到Java cacerts 文件**
打开终端并执行以下命令,假设你的证书文件名为 mytrustedcert.pem,并且存放在 /path/to/mytrustedcert.pem:
sudo keytool -importcert -alias mytrustedcert -file /path/to/mytrustedcert.pem -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
- -importcert:表示我们要导入一个证书。 
- -alias:指定导入证书的别名,例如 mytrustedcert,后续可以通过此别名引用证书。 
- -file:提供证书文件的完整路径。 
- -keystore:指定Java的信任存储位置,默认是JRE目录下的 cacerts 文件。 
- -storepass:这里是访问keystore的密码,对于标准的 cacerts 文件,默认密码是 changeit。
执行命令后,keytool 会提示你是否信任该证书,输入 'yes' 并回车确认
**4. 验证证书是否成功导入**
你可以再次运行 keytool 来列出所有已导入的证书,并验证新导入的证书是否存在:
sudo keytool -list -v -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
通过查看输出信息,查找以你之前指定的别名(如 mytrustedcert)命名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值