如何让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似乎将人工制品视为中间人(本质上就是这样)。
什么是正确的方法?
答案 0 :(得分:1)
引起该错误的原因是,运行Artifactory的JAVA在其受信任的根证书存储中没有受信任的远程URL的根证书。
此外,有关PKIX,请参阅以下knowledge base article。
另一种选择,以防您的URL末尾带有尾部“ /”,这可能导致重定向到远程存储库的安全位置