Maven 使用公司自签证书访问内部仓库

yanghailong
·

通过 ~/.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

评论

跳过证书检验会导致下载官方源的包也不检验,那还是安装证书好一点。

reply
回复
1 回复
arrow_right_alt
社区准则 博客 联系 反馈 状态
主题