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 解密网关时:

VIVA
VIVA

一个免费的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 中显式指定:


  
    httpclient
  

随后仍需确保 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 传输升级引发的证书验证失败问题。

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

825

2023.06.15

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

725

2023.07.05

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

731

2023.07.31

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

396

2023.08.01

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

398

2023.08.02

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

445

2023.08.02

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

429

2023.08.02

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

16881

2023.08.03

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

74

2025.12.31

热门下载

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

精品课程

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

共48课时 | 6.4万人学习

Git 教程
Git 教程

共21课时 | 2.3万人学习

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

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