通过人工的远程简单存储库拉取gradle distributionUrl会导致javax.net.ssl.SSLHandshakeException

时间:2018-06-28 20:49:39

标签: artifactory gradlew

如何让gradle wrapper信任我的工件证书而不修改使用它的每台机器,还是我以错误的方式浏览了工件?

我的工件使用自签名证书,并且我的系统设置为信任此证书。在gradle构建中,对我的依赖项而言,对人工仓库的访问非常出色,而gradlew则更少。

为了提高构建的可靠性,我们为 https://services.gradle.org/distributions/gradle- ... 添加了人工的简单远程存储库,但是在构建时请参见以下内容:

gradle-wrapper.properties

distributionUrl=https\://artifactory01.megacorp.us/remote-simple-artifactory/distributions/gradle-4.0.2-all.zip

错误

Exception in thread "main" 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

可以肯定的是gradlew似乎将人工制品视为中间人(本质上就是这样)。

什么是正确的方法?

1 个答案:

答案 0 :(得分:1)

引起该错误的原因是,运行Artifactory的JAVA在其受信任的根证书存储中没有受信任的远程URL的根证书。

此外,有关PKIX,请参阅以下knowledge base article

另一种选择,以防您的URL末尾带有尾部“ /”,这可能导致重定向到远程存储库的安全位置