0

0

Maven 构建时 SSL 证书验证失败的解决方案

聖光之護

聖光之護

发布时间:2026-01-02 13:50:02

|

976人浏览过

|

来源于php中文网

原创

Maven 构建时 SSL 证书验证失败的解决方案

本文介绍如何解决 maven 3.9+ 因启用默认 native https 传输层而导致的 pkix 证书路径验证失败问题(如 `pkix path building failed`),提供安全、临时和长期三种应对策略。

从 Maven 3.9.0 版本开始,Apache Maven 将默认的 HTTP 传输实现由 httpclient 切换为 native(基于 JDK 内置 java.net.http.HttpClient)。该变更提升了性能与兼容性,但也带来了更严格的 TLS/SSL 验证行为——尤其在企业环境(如使用代理、中间人证书、自定义 CA 或 JDK 信任库未同步更新)下,容易触发如下典型错误:

Non-resolvable import POM: Could not transfer artifact org.junit:junit-bom:pom:5.6.2 
from/to central (https://repo.maven.apache.org/maven2): 
sun.security.validator.ValidatorException: 
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: 
unable to find valid certification path to requested target

该错误本质是 JDK 无法通过内置信任库(cacerts)构建到 repo.maven.apache.org 的可信证书链,而非 Maven 本身配置错误。

✅ 推荐解决方案(按优先级排序)

1️⃣ 【推荐】临时绕过验证(仅开发/调试用)

适用于快速验证是否为 SSL 问题本身,切勿用于 CI/CD 或生产环境

mvn compile -Daether.connector.https.securityMode=insecure

此参数强制 aether(Maven 依赖解析引擎)跳过 HTTPS 证书校验。你也可将其设为全局环境变量以避免每次输入:

# Linux/macOS
export MAVEN_OPTS="-Daether.connector.https.securityMode=insecure"

# Windows(CMD)
set MAVEN_OPTS=-Daether.connector.https.securityMode=insecure

# Windows(PowerShell)
$env:MAVEN_OPTS="-Daether.connector.https.securityMode=insecure"
⚠️ 注意:insecure 模式会禁用整个 HTTPS 证书链验证(包括域名匹配、有效期、签名有效性等),存在中间人攻击风险,请严格限制使用场景。

2️⃣ 【最佳实践】更新 JDK 信任库(长期可靠)

根本性解决方式是确保 JDK 的 cacerts 信任库包含权威 CA 根证书(如 DigiCert、Sectigo 等),特别是当你的网络环境使用了企业代理或 SSL 解密网关时:

Chromox
Chromox

Chromox是一款领先的AI在线生成平台,专为喜欢AI生成技术的爱好者制作的多种图像、视频生成方式的内容型工具平台。

下载
  • 下载最新根证书包(如 Mozilla CA Certificate Store 的 cacert.pem);
  • 使用 keytool 导入关键根证书(示例导入 Let's Encrypt R3):
# 下载 https://letsencrypt.org/certs/lets-encrypt-r3.pem
keytool -importcert -alias letsencrypt-r3 -file lets-encrypt-r3.pem \
  -keystore "$JAVA_HOME/jre/lib/security/cacerts" -storepass changeit

? 提示:确认 $JAVA_HOME 指向 Maven 实际使用的 JDK(可通过 mvn -version 查看),并注意 cacerts 路径在 JDK 17+ 中可能为 $JAVA_HOME/lib/security/cacerts。

3️⃣ 【可选】降级传输实现(兼容旧行为)

若需恢复 Maven 3.8.x 的 httpclient 行为(例如已适配其代理/认证逻辑),可在 ~/.m2/settings.xml 中显式指定:

<settings>
  <properties>
    <aether.connector.https.transportType>httpclient</aether.connector.https.transportType>
  </properties>
</settings>

随后仍需确保 httpclient 相关依赖(如 org.apache.httpcomponents:httpclient)版本兼容,且代理配置正确。

? 总结与建议

  • PKIX path building failed 是典型的 TLS 信任链断裂现象,根源在于 JDK 信任库缺失必要根证书;
  • -Daether.connector.https.securityMode=insecure 是最快速的诊断手段,但仅为临时方案;
  • 生产环境应优先通过更新 cacerts 或配置企业 CA 证书来修复信任链;
  • 避免修改 Maven 安装目录下的 conf/settings.xml 全局配置,推荐使用用户级 ~/.m2/settings.xml 进行个性化设置;
  • 若使用 IDE(如 IntelliJ IDEA),还需检查其内嵌 Maven 是否指向同一 JDK,并同步更新其信任库。

通过以上任一方式,即可稳定解决 Maven 3.9+ 构建中因 HTTPS 传输升级引发的证书验证失败问题。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Java Maven专题
Java Maven专题

本专题聚焦 Java 主流构建工具 Maven 的学习与应用,系统讲解项目结构、依赖管理、插件使用、生命周期与多模块项目配置。通过企业管理系统、Web 应用与微服务项目实战,帮助学员全面掌握 Maven 在 Java 项目构建与团队协作中的核心技能。

0

2025.09.15

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1948

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2119

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

1168

2024.11.28

idea快捷键大全
idea快捷键大全

本专题为大家提供idea快捷键相关的文章,帮助大家解决问题。

174

2023.08.03

idea如何集成Tomcat
idea如何集成Tomcat

idea集成Tomcat的步骤:1、添加Tomcat服务器配置;2、配置项目部署;3、运行Tomcat服务器;4、访问项目;5、注意事项;6、关闭Tomcat服务器。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

173

2024.02.23

idea怎么配置maven
idea怎么配置maven

idea配置maven的步骤:1、打开intellij idea,并确保已安装maven integration插件,可以在"file"菜单中选择"settings",然后在"plugins"选项卡中搜索并安装maven integration插件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

131

2024.02.23

eclipse和idea有什么区别
eclipse和idea有什么区别

eclipse和idea的区别:1、平台支持;2、内存占用;3、插件系统;4、智能代码提示;5、界面设计;6、调试功能;7、学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

152

2024.02.23

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.6万人学习

Git 教程
Git 教程

共21课时 | 4.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号