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
问题产生:
本地与测试环境下使用 apache的HttpClient访问第三方https域名下的接口可以正常请求,但上线到正式环境后进行请求时日志报错。
基本原因:
在jdk证书库里找不到该https域名的公钥证书,被jdk拒绝访问。
解决方法
如上所述,要解决这个问题的方法就是:
1、相信所有外来证书;
2、在jdk证书库里添加该域名的公钥证书。
以下对第二种方法进行相应陈述:
1、获取 HTTPS 域名的公钥证书,可以通过浏览器导出并命名为xxx.cer
2、上传证书到服务器上,记住上传的路径,最好是/root目录下。
3、进入到jdk目录下的jre\lib\security这个目录然后执行以下语句
keytool -import -alias cacerts -keystore cacerts -file /root/xxx.cer
输入密码 : changeit
最后确定: yes
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗