当前位置: 首页 > news >正文

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException

1、问题描述

在Java中访问不受信任的HTTPS网站时,会提示报错信息:

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

意识是:

PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效认证路径。

2、原因分析

这是由于JVM (Java Virtual Machine) 默认信任证书不包含该目标网站的SSL证书,导致无法建立有效的信任链。

JVM自己维护有一个默认的信任证书,是一个没有后缀名的文件,文件名为cacerts,位于java安装路径下,例如:

C:\Program Files\Java\jdk\lib\security\cacerts

当Java访问https的网站时,通常不会出现这一异常,但有的https网站,因为种种原因,存在证书不受信任的问题,使用浏览器 访问会出现如下界面:


Java访问这种网站就会导致报错。

3、解决方案

三种解决方案

1) 信任所有SSL证书
参考:https://developer.aliyun.com/article/812846
这种方案不失为一种解决办法,但除了存在安全问题,还会对代码造成侵入,且在框架项目中不易集成。

2) 将不信任的证书加入到JVM默认信任证书
参考:https://www.cnblogs.com/qixing/p/11883494.html
这种方案避免了代码入侵的问题,但想到要对java自带的默认文件动手动脚,且加入的还是不受信任的证书,多少有些不合适,而且加入后以后可能会忘记复原,或是要备份原始默认文件。

3) 单独为不信任的网站生成证书并在项目中指定
这也是本文使用的方案,避免了上面两个方案的问题。

4、解决步骤
4.1 获取目标网站的SSL证书

保存到 D:\Pictures\gitee.com.crt

4.2 创建一个Java信任库
创建一个Java信任库(Truststore),并将目标网站的SSL证书导入其中。使用java自带的keytool命令行工具来完成此操作。在在工程根目录下执行以下名:

keytool -import -keystore ./jssecacerts -storepass changeit -alias alias_for_certificate -file D:\Pictures\lib\ztflh.com.crt

说明:

keystore保存文件路径:./jssecacerts

信任库密码: changeit

导入的证书路径:D:\Pictures\lib\ztflh.com.crt

4.3 告知JVM使用信任库
在你的Java应用程序中,告知JVM使用你刚刚创建的信任库。使JVM在运行时加载该信任库。
通过设置以下系统属性来实现:

System.setProperty("javax.net.ssl.trustStore", "./jssecacerts"); // 刚才填写的路径
System.setProperty("javax.net.ssl.trustStorePassword", "changeit "); // 刚才填写的密码

再执行java代码就能执行成功。

http://www.jsqmd.com/news/696617/

相关文章:

  • 408考研避坑指南:我踩过的那些“弯路”(教材、网课、题海战术)
  • 2026赤芍苗批发基地靠谱榜:天冬苗批发/天麻苗批发基地/射干苗批发/枳壳苗批发/桔梗苗批发/毛慈菇苗批发/淫羊藿苗批发/选择指南 - 优质品牌商家
  • 蓝桥杯I2C实战:EEPROM数据持久化与PCF8591信号转换
  • 【26年最新】英语四六级高频核心词汇1500个+历年真题PDF电子版
  • 2026成都工业风机厂家名录:成都耐高温风机厂家、成都轴流风机厂家、成都防腐风机厂家、成都隧道风机厂家、成都风机厂家选择指南 - 优质品牌商家
  • Mac窗口置顶终极指南:5分钟掌握Topit提升你的工作效率
  • HPH核心构造详解:三大系统一图看懂
  • 怎样通过Navicat高效导出ER模型为PDF文档_大幅提升绘制效率
  • 自动驾驶定位实战:从GICP到VGICP,手把手教你用PCL实现点云匹配(附避坑指南)
  • G-Helper终极指南:释放华硕笔记本隐藏性能的简单秘诀
  • AI赋能新药研发!化合物虚拟筛选春日特惠3天极速交付
  • Windows Server 2019上搞定Connectify Dispatch网卡聚合,保姆级避坑指南
  • 别再用Oligo6了!试试这3个免费的在线PCR引物设计工具,小白也能搞定
  • 智能计算中的资源分配与任务调度
  • 手把手教你用STM32CubeMX配置TM7711高精度ADC(附完整代码与电平转换电路详解)
  • Fairseq-Dense-13B-Janeway部署案例:基于CUDA 12.4+PyTorch 2.5.0的高性能推理环境搭建
  • 智慧农业茶叶嫩芽检测数据集VOC+YOLO格式3288张1类别有增强100
  • 别再只会wsl -l -v了!这10个WSL2实用命令,帮你搞定开发环境迁移与备份
  • 2026成都货物托运公司可靠指南:专线托运/大件托运/大件物流/工具物流托运/成都发省外物流/成都托运物流/成都物流公司/选择指南 - 优质品牌商家
  • 2026防微振基座施工技术解析:FAB厂二次配、光伏厂二次配、半导体二次配工程、厂区配电工程、厂房二次配施工、机电二次配选择指南 - 优质品牌商家
  • LLM大语言模型(九):从BAAI/bge-large-zh-v1.5看Embedding模型如何优化ChatGLM3-6B的语义理解与检索
  • 性能优化-MySQL索引
  • Excel打开密码怎么取消?两种方法教你快速移除工作簿密码
  • 3步完成Tabletop Simulator数据保护:TTS-Backup终极指南
  • 从《我的第一份工作》看技术面试:如何避免踩中那些‘令人沮丧的旅程’和‘最后一根稻草’
  • 2026川内中央空调回收厂家靠谱推荐榜:电力变压器回收、箱式变压器回收、中央空调回收价格、变压器回收价格、变压器回收报价选择指南 - 优质品牌商家
  • FLUX.1-dev效果实测:8K输出下4090D单卡耗时仅142秒,显存占用稳定23.7G
  • maven涉及的配置
  • 易语言大漠脚本进阶:手把手封装一套防游戏检测的键鼠操作模块(含随机轨迹源码)
  • C盘空间清理自动化脚本:基于Qwen3-14B-Int4-AWQ生成智能清理方案