web-dev-qa-db-ja.com

SSL証明書の検証をバイパスするようにGradleを構成するにはどうすればよいですか?

https URLと自己署名証明書を含むリモートリポジトリがあります。 MavenではMAVEN_OPTSプロパティは、証明書の検証をバイパスします。どうすればこれをgradleで達成できますか?

ファイルを変更してみましたgradle.properties正確なプロパティが見つかりません:

systemProp.http.ssl.insecure=true
systemProp.http.ssl.allowall=true
systemProp.http.ssl.ignore.validity.dates=true
16
cshion

Gradle "Trust All"プラグインこのプラグインは、自己署名証明書を使用してHTTPS経由でMavenリポジトリーをすばやく簡単に使用するために必要性から生まれました。

Gradleでこのようなリポジトリを操作すると、エラーが発生する場合があります。

ファイルの転送中にエラーが発生しました:Sun.security.validator.ValidatorException:PKIXパスの作成に失敗しました:Sun.security.provider.certpath.SunCertPathBuilderException:要求されたターゲットへの有効な証明書パスが見つかりません通常Java処理方法このようなシナリオでは、サイト証明書をダウンロードしてキーストアにインポートし、-Djavax.net.ssl.trustStore = ... JVMオプションを介してそのキーストアを使用します。

時には、もっと簡単な方法が必要なだけです-証明書の検証を完全に無効化してください!これを行わない理由はたくさんありますが、その1つは、このアプローチにより接続が中間者攻撃に対して脆弱になることです。

このコードを概念実証と見なし、それを使用することで最終的に情報に基づいた悪い決定を下しているという完全な責任を負います。

Origin証明書の検証を無効にするコードは、このStackOverflowの回答に由来しますが、同様のコードスニペットがウェブ上に数多くあります。

「Trust All」プラグインの使用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')
    }
}

プラグインを適用する: 'trust-all'それだけです。これで、gradleでの証明書の検証が無効になります。

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

1
Dahar Youssef