Maven之SSL证书错误
2020-08-12 本文已影响0人
狄仁杰666
前言
我们在构建Maven项目时,经常会遇到如下报错:
...
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
...
该错误一般会发生在2个过程:
- 下载依赖阶段;
- 发布阶段;
如何解决该报错?
1. 当知道目标站点的证书;
- 在项目中导入目标站点证书;
- 然后执行命令时使用:
mvn clean deploy -B -Djavax.net.ssl.trustStore=./src/main/resources/certs/sonatype.cer -Djavax.net.ssl.trustStorePassword=changeit
2. 当只知道目标站点;
- 在浏览器中打开目标站点,如:
https://oss.sonatype.org/content/repositories/snapshots/ -
在浏览器导出站点证书:
浏览器导出证书1
浏览器导出证书2
浏览器导出证书3
浏览器导出证书4
浏览器导出证书5- 将证书放到项目内,路径如:./src/main/resources/certs/sonatype.cer
- 然后执行命令时使用:
mvn clean deploy -B -Djavax.net.ssl.trustStore=./src/main/resources/certs/sonatype.cer -Djavax.net.ssl.trustStorePassword=changeit
3. 强制忽略所有证书检查;
方法1:运行命令暂时忽略;
mvn clean deploy -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
方法2:IDEA中配置忽略命令;
IDEA中配置然后点击IDEA右上角,maven中,lifecycle下的不同按钮,即可使用忽略ssl证书检查后的maven生命周期,也即maven命令!
4. 最后一招,不一定对所有站点适用;
在电脑环境变量中设置环境变量:
NODE_TLS_REJECT_UNAUTHORIZED=0
设置环境变量
然后重启命令行窗口,重新执行maven命令。