Maven 使用公司自签证书访问内部仓库
通过 ~/.m2/settings.xml
文件配置了公司内部 Maven 仓库镜像,Maven 下载依赖时报错:
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
原因
是由于公司搭建内部 Maven 仓库时使用了自签证书,JRE 不识别该证书,导致 SSL 校验失败。
修复方法
导入证书到 JRE 的 Keystore 中
Import security certificate to the JRE Keystore
假设证书保存在 ~/Downloads/ca.pem
$ cd $JAVA_HOME/jre/lib/security/
$ keytool -import -alias mycertificate -keystore cacerts -file ~/Downloads/ca.pem
如果执行 keytool 过程中提示"输入秘钥库口令(Enter keystore password)",输入 changeit
即可。
【不推荐】Maven 命令行跳过 SSL 校验
❌ 有安全风险,不推荐使用该方法
在执行命令式添加 -Dmaven.wagon.http.ssl.insecure=true
如:
mvn clean compile -Dmaven.wagon.http.ssl.insecure=true
【不推荐】IDEA Maven 下载包时跳过 SSL 校验
❌ 有安全风险,不推荐使用该方法
Maven 的 "VM options for importer" 中配置 -Dmaven.wagon.http.ssl.insecure=true