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

截屏2022-07-25 11.53.35.png

1
2
@yanghailong
事不宜迟,滴水穿石。
加入