web-dev-qa-db-ja.com

gradlew.bat(およびgradlew)SSLHandShakeException

私はGradleを初めて使い、この春のチュートリアルをここで見つけました:

http://spring.io/guides/gs/gradle/

このタスクを追加するように指示する部分に到達します。

task wrapper(type: Wrapper) {
     gradleVersion = '2.3'
}

Gradlewおよびgradlew.batファイルを作成するgradleラッパーを実行します。

この両方を実行しようとすると、この例外が発生します:

Downloading https://services.gradle.org/distributions/gradle-2.3-bin.Zip

Exception in thread "main" javax.net.ssl.SSLHandshakeException: Sun.security.val
idator.ValidatorException: PKIX path building failed: Sun.security.provider.cert
path.SunCertPathBuilderException: unable to find valid certification path to req
uested target
        at Sun.security.ssl.Alerts.getSSLException(Alerts.Java:192)
        at Sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.Java:1884)
        at Sun.security.ssl.Handshaker.fatalSE(Handshaker.Java:276)
        at Sun.security.ssl.Handshaker.fatalSE(Handshaker.Java:270)
        at Sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.
Java:1341)
        at Sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.jav
a:153)
        at Sun.security.ssl.Handshaker.processLoop(Handshaker.Java:868)
        at Sun.security.ssl.Handshaker.process_record(Handshaker.Java:804)
        at Sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.Java:1016)
        at Sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.
Java:1312)
        at Sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.Java:1339
)
        at Sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.Java:1323
)
        at Sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.Java:
563)
        at Sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect
(AbstractDelegateHttpsURLConnection.Java:185)
        at Sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLCon
nection.Java:1300)
        at Sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Http
sURLConnectionImpl.Java:254)
        at org.gradle.wrapper.Download.downloadInternal(Download.Java:56)
        at org.gradle.wrapper.Download.download(Download.Java:42)
        at org.gradle.wrapper.Install$1.call(Install.Java:57)
        at org.gradle.wrapper.Install$1.call(Install.Java:44)
        at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAcc
essManager.Java:65)
        at org.gradle.wrapper.Install.createDist(Install.Java:44)
        at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.Java:126)
        at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.Java:56)
Caused by: Sun.security.validator.ValidatorException: PKIX path building failed:
 Sun.security.provider.certpath.SunCertPathBuilderException: unable to find vali
d certification path to requested target
        at Sun.security.validator.PKIXValidator.doBuild(PKIXValidator.Java:385)
        at Sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.jav
a:292)
        at Sun.security.validator.Validator.validate(Validator.Java:260)
        at Sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.j
ava:326)
        at Sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerIm
pl.Java:231)
        at Sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustMan
agerImpl.Java:126)
        at Sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.
Java:1323)
        ... 19 more
Caused by: Sun.security.provider.certpath.SunCertPathBuilderException: unable to
 find valid certification path to requested target
        at Sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCert
PathBuilder.Java:196)
        at Java.security.cert.CertPathBuilder.build(CertPathBuilder.Java:268)
        at Sun.security.validator.PKIXValidator.doBuild(PKIXValidator.Java:380)
        ... 25 more

https://services.gradle.org/distributions/gradle-2.3-bin.Zip でウェブサーバーにアクセスしようとしましたが、エラーは発生しません。ある種の設定がありませんか?任意の助けをいただければ幸いです。ありがとう!

19
MrRoboto

同じ問題を経験しましたが、Javaの認証局(cacert)ファイルに特別に追加しない限り、UbuntuマシンがSSLホストを解決できないという症状がありました。

私はこのDebianのバグを見つけて、かなり簡単な解決策を見つけました:remove ca-certificates-Javaそして再度インストールします。

Sudo dpkg --purge --force-depends ca-certificates-Java
Sudo apt-get install ca-certificates-Java

私は./gradlew clean良い尺度であり、すべてが再び生き返った。

19
Paul Lammertsma

とにかく修正できなかった場合。ファイアウォールの内側にいる場合。
それから。
httpsをダウンロードできない場合があります。

その編集gradle-wrapper.propertiesファイルを修正する必要があります。

vi [project]/gradle/wrapper/gradle-wrapper.properties

#distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-bin.Zip 
distributionUrl=http\://services.gradle.org/distributions/gradle-2.8-bin.Zip

httpsからhttpに変更...

http://blog.cjred.net/gradlew-bat-and-gradlew-sslhandshakeexception/

36
Jeonggeun Lee

Gradleサイトの証明書が台無しになっているようです。 gradlew cleanこれを修正する必要があります。 Gradleフォーラムでこのスレッドを参照してください: http://discuss.gradle.org/t/urgent-ssl-Apache-configuration-for-services-gradle-org-is-bad/8808/4

3
dunni

私の場合、会社のネットワーク上でプロキシの背後にいたため、SSL証明書が書き換えられ、Javaインストールはそれらのいずれも信頼しません。

それを解決するために、ホームディレクトリの.gradle(~/.gradle/gradle.properties)次の行を追加します。

org.gradle.jvmargs=-DsystemProp.https.proxyHost=<myProxyHost> -DsystemProp.https.proxyPort=<myProxyPort> -DsystemProp.https.proxyUser=<myProxyUsername> -DsystemProp.https.proxyPassword=<myProxyPassword>

そのソリューションはこれに基づいていましたSO answer: Gradle use certificate authentication for repository

1
Hervian

私の場合、問題は古い(7歳)バージョンのJavaが原因でした。 gradlew cleanは失敗しました。 Java更新後に正常に動作しました。

1
ohaleck

これは、Gradleがローカルマシンでインストール済みパッケージを見つけようとするためです。インストール場所がある場合:

D:\ apps\gradle-3.3

Eclipseで次の手順を実行します。

  1. 新たなプロジェクト
  2. Gradleプロジェクト
  3. プロジェクト名を入力
  4. ローカルインストールディレクトリ
  5. 完了をクリックします。

準備できた。

0
Karthik M