如何配置Gradle绕过SSL证书验证

csh*_*ion 13 java ssl android 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
Run Code Online (Sandbox Code Playgroud)

小智 6

Gradle“Trust All”插件这个插件的诞生是为了一种快速而肮脏的方式来使用带有自签名证书的 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/
Run Code Online (Sandbox Code Playgroud)

然后在您项目的 build.gradle 文件中将其添加为 buildscript 依赖项并激活插件:

buildscript {
    dependencies {
        classpath files('gradle/gradle-trust-all.jar')
    }
}

apply plugin: 'trust-all'
Run Code Online (Sandbox Code Playgroud)

这就对了。现在 gradle 中的证书验证被禁用。

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