最近公司的项目突然出现了下面的提示。
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 2]
问题和解决
出现上面的提示的问题是因为 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 下。
然后再次运行 mvn 的命令,这个应该能够让你跳过 SSL 的证书检查,并完成下载。