Maven PKIX path building failed 错误提示

最近公司的项目突然出现了下面的提示。

代码语言:javascript
复制
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 2]
2023-05-17_17-54-19

问题和解决

出现上面的提示的问题是因为 SSL 签名的问题。

但是我们访问的网站的 SSL 签名是没有问题的,唯独使用公司的电脑有这个问题。

后来发现是因为公司电脑装的一个 zscaler 的安全软件导致的签名问题。

解决办法就是让 Maven 不对 SSL 进行校验,这个 zscaler 比较奇葩,对你访问的网站还先自签名一次,然后再让你访问。

解决的办法就是在需要运行 Maven 的地方,添加下面的参数:

-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true

下面的参数能够让 Maven 不对访问的仓库进行签名校验。

有关参数的配置,请参考网站:Apache Maven Wagon :: Providers :: HTTP Provider – Maven Wagon HTTP 上的内容。

Maven 命令行运行

如果你使用的是 Maven 命令行来进行编译的话,你需要使用下面的命令:

mvn clean install -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -U

这样通常能够让你在命令行中跳过 SSL 证书的检查。

IntelliJ

如果你还想让你的 IntelliJ 也跳过 SSL 证书的检查,那么你需要把下面的参数 -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true 添加到 IntelliJ 的 VM options 下。

pkix_error_03

然后再次运行 mvn 的命令,这个应该能够让你跳过 SSL 的证书检查,并完成下载。