gradlew.bat(y gradlew) SSLHandShakeException
(7)
Crea este perfil en la página de inicio del usuario:
$ vi ~/.yarnrc
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
strict-ssl false
Soy nuevo en Gradle y estaba siguiendo este tutorial de primavera que se encuentra aquí:
http://spring.io/guides/gs/gradle/
Llego a la parte donde me dice que agregue esta tarea:
task wrapper(type: Wrapper) {
gradleVersion = ''2.3''
}
Ejecuto Gradle Wrapper que crea los archivos Gradlew y Gradlew.bat.
Intentando ejecutar tanto de esto obtengo esta excepción:
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
Intento acceder al servidor web en https://services.gradle.org/distributions/gradle-2.3-bin.zip y no recibo ningún tipo de error. Me estoy perdiendo algún tipo de configuración? Cualquier ayuda sería apreciada. ¡Gracias!
En mi caso, el problema se debió a una versión obsoleta (7 años de antigüedad) de Java. Incluso gradlew clean
fracasó. Después de una actualización de Java funcionó bien.
En mi caso, estaba en una red de la empresa y detrás de un proxy, que, según tengo entendido, vuelve a escribir los certificados SSL, haciendo que la instalación de Java no confíe en ninguno de ellos.
Para resolverlo tuve que crear un archivo gradle.properties en mi directorio de inicio en .gradle ( ~/.gradle/gradle.properties
) y agregar la siguiente línea:
org.gradle.jvmargs=-DsystemProp.https.proxyHost=<myProxyHost> -DsystemProp.https.proxyPort=<myProxyPort> -DsystemProp.https.proxyUser=<myProxyUsername> -DsystemProp.https.proxyPassword=<myProxyPassword>
Esa solución se basó en esta respuesta SO: Gradle utiliza la autenticación de certificados para el repositorio
Esto se debe a que, Gradle intenta encontrar el paquete instalado en su máquina local. Si tienes la ubicación instalada:
D: / apps / gradle-3.3
Siga estos pasos en eclipse:
- Nuevo proyecto
- Proyecto Gradle
- Ingrese el nombre del proyecto
- Directorio de instalación local
- Haga clic en Finalizar.
Tú eres bueno para irte.
Experimenté el mismo problema, sin embargo, mis síntomas eran que mi máquina Ubuntu no podía resolver ningún host SSL a menos que los agregara específicamente al archivo de autoridad de certificación (cacert) de Java.
Me topé con este error de Debian y encontré una resolución bastante sencilla: elimine ca-certificates-java
y vuelva a instalarlo:
sudo dpkg --purge --force-depends ca-certificates-java
sudo apt-get install ca-certificates-java
Hice una ./gradlew clean
por si ./gradlew clean
, y todo volvió a la vida.
Parece, que los certificados para el sitio de Gradle estaban en mal estado. Hacer una gradlew clean
debería arreglar esto. Vea este hilo en el foro de Gradle: http://discuss.gradle.org/t/urgent-ssl-apache-configuration-for-services-gradle-org-is-bad/8808/4
Si no pudieras arreglarlo de todos modos. Y si estas dentro de firewall.
entonces.
Usted no puede descargar https.
Debería arreglar ese archivo de edición 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
cambiar de https a http ...
http://blog.cjred.net/gradlew-bat-and-gradlew-sslhandshakeexception/