HTTPS请求失败: I/O error on POST request for "https://yum.7x-networks.net/xxxx": sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is 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
idea2025 使用restTemplate 请求https 请求时报没有有效的认证。
原因是请求的url不是通用的CA认证,是私人的证书,jvm 识别不出来,需要手动添加该网站的认证。
1.下载认证文件
证书存在两种后缀CER CRT
CER和CRT的区别
CER和CRT都是用于存储证书的文件扩展名,主要区别在于它们的使用场景和编码格式。
2.如果使用的是本地的java
开始 搜索cmd 使用管理员权限 1.D:\ 2.cd java\j...进入 D:\java\jdk1.8\bin>
路径执行 ,这个时候可以重启idea ,看下请求是否可行
bash
keytool -importcert ^
-alias yum-7x-networks ^
-file "D:\java\yum.7x-networks.net.crt" ^
-keystore "D:\java\jdk1.8\jre\lib\security\cacerts" ^
-storepass changeit ^
-noprompt
3.如果不生效,查看一下idea本身使用的环境
bash
Help → Show Log in Explorer
打开 idea.log 文件
搜索关键词:java.home 或 JAVA_HOME

JetBrains 为了兼容性和稳定性,从 IDEA 2020.1 开始自带 JBR(JetBrains Runtime),即使你电脑上装了多个 JDK,IDEA 默认也使用 JBR 启动。
执行下面的命令
bash
keytool -importcert ^
-alias yum-7x-networks ^
-file "D:\java\yum.7x-networks.net.crt" ^
-keystore "D:\IntelliJ IDEA 2025.2\jbr\lib\security\cacerts" ^
-storepass changeit ^
-noprompt
bash
验证是否导入成功
keytool -list ^
-keystore "D:\IntelliJ IDEA 2025.2\jbr\lib\security\cacerts" ^
-storepass changeit ^
-alias yum-7x-networks
tips: 有可能导入后证书,过一段时间后还是会出现这个报错,本人遇到了一次,个人推断是证书文件的问题,因为我把之前的证书重新导入还是会报错,如果重新导入证书,导入,问题解决。 另外,同事没有遇到该问题,留下了一个问题:是因为jdk 本身的问题还是因为idea 版本的问题...
bash
删除认证
keytool -delete ^
-alias yum-7x-networks ^
-keystore "D:\IntelliJ IDEA 2025.2\jbr\lib\security\cacerts" ^
-storepass changeit