PKIX path building failed - unable to find valid certification path to requested target

本文介绍了在MAC上遇到Gradle编译时因SSL证书不被信任导致的错误。问题源于Zscalar VPN软件的证书未被Java信任。解决方案是导出Zscalar的根证书并将其导入Java的信任证书列表。具体步骤包括在Keychain Access中找到Zscaler证书,导出为PEM文件,然后使用keytool命令导入到Java的cacerts。完成这些步骤后,Gradle编译即可成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在MAC机器上,使用Gradle编译项目是遇到错误如下:

根据错误提示:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

根据错误提示,失败的主要原因是由于不能相信https://services.gradle.org/distributions/gradle-7.4-bin.zip的证书导致的。不过,当通过浏览器直接访问时,也没有显示证书是不可信任的,也可以下载。

经过调查得知,MAC机器上安装了Zscalar的VPN软件,公司的IT已经将Zscalar的根证书做到系统里了,所以,通过浏览器是可以访问,没有问题的。但是,gradle是通过java的jvm来执行的,Java也会有一系列的信任证书,而Zscalar的证书可能没有被翻到java的信任证书列表中。

知道问题了,就可以很好解决了。 解决方案就是把Zscalar的证书,添加到Java的可信任证书列表中。

这里以MAC机器为例讲解如何处理:

1) 打开 Keychain Access

2) 查找 Zscaler 

 3) 选择根证书,右键,导出证书。

4) 执行命令将根证书导入:

sudo keytool -import -alias zScaler -keystore $JAVA_HOME/lib/security/cacerts -file /Users/code/Zscaler_Root_CA.cer

5) 需要注意的是:每次升级都可能要执行此命令,所以,需要保留这条命令和导出的证书。

导入成功之后,再执行gradle编译命令:

 执行成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值