如何配置gradle以绕过SSL证书验证

时间:2018-08-02 16:12:14

标签: java android ssl gradle

我有一个带有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

1 个答案:

答案 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中的证书验证。

https://github.com/arteme/gradle-trust-all