我有一个带有https(自签名证书)的远程存储库,因此在Maven中我可以设置MAVEN_OPTS属性以绕过证书验证。如何使用gradle达到此目的?我尝试修改gradle.properties文件,但找不到确切的属性。
gradle.properties
systemProp.http.ssl.insecure=true
systemProp.http.ssl.allowall=true
systemProp.http.ssl.ignore.validity.dates=true
答案 0 :(得分:1)
Gradle“全部信任”插件 该插件的诞生是出于一种快速而肮脏的方式,该方式可以通过带有自签名证书的HTTPS使用Maven存储库。
在gradle中使用此类存储库时,您可能会收到错误消息:
传输文件时出错:sun.security.validator.ValidatorException: PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException: 无法找到到请求目标的有效认证路径 处理这种情况的常用Java方法是下载站点证书,将其导入密钥库,然后通过-Djavax.net.ssl.trustStore = ... JVM选项使用该密钥库。
有时,您只需要一种更简单的方法-完全禁用证书验证!不这样做的原因有很多,其中之一就是这种方法使连接容易受到中间人攻击。
请将此代码视为概念验证并承担全部责任,即使用该代码最终将做出明智的错误决定。
来源 禁用证书验证的代码来自此StackOverflow答案,尽管网上有许多类似的代码片段。
使用“全部信任”插件 要使用gradle-trust-all,请构建jar文件并将其包含在您的项目中:
$ git clone https://github.com/arteme/gradle-trust-all.git
$ cd gradle-trust-all
$ gradle build
$ cp build/libs/gradle-trust-all.jar /path/to/your/project/gradle/folder/
然后在项目的build.gradle文件中将其添加为buildscript依赖项并激活插件:
buildscript {
dependencies {
classpath files('gradle/gradle-trust-all.jar')
}
}
应用插件:“全部信任” 这就对了。现在已禁用gradle中的证书验证。