¿Por qué recibo "Alerta fatal recibida: versión_protocolo" o "par no autenticado" de Maven Central?

132

Recibo los siguientes errores al conectarme a Maven Central / https://repo1.maven.org después del 18 de junio de 2018.

Received fatal alert: protocol_version

o

Received fatal alert: peer not authenticated
Brian Fox
fuente
2
Impresionante prueba que hiciste allí para el futuro.
Thor Hovden

Respuestas:

188

Solución 1: configurar Java 7

Es necesario habilitar el protocolo TLS 1.2 con la propiedad Java en la línea de comando

mvn -Dhttps.protocols=TLSv1.2 install

install es solo un ejemplo de un objetivo

El mismo error antpuede resolverse de esta manera

java -Dhttps.protocols=TLSv1.2 -cp %ANT_HOME%/lib/ant-launcher.jar org.apache.tools.ant.launch.Launcher

Solución 2: use Java 7 con Oracle Advanced Support

También se puede resolver el problema actualizando la versión de Java 7. Pero la última versión disponible ( 7u80) no soluciona el problema. Es necesario utilizar una actualización proporcionada con Oracle Advanced Support (anteriormente conocido como Java for Business).

Solución 3: use Java 8 en su lugar

Configure $JAVA_HOMEpara apuntar a Java 8.

v.ladynev
fuente
¡Has ahorrado un día por aquí!
Herve Mutombo
¿Me puede decir, por favor, cuál es el equivalente en SBT que intenté sbt -Dhttps.protocols=TLSv1.2 instalpero no funciona
G.Saleh
@ G.Saleh Necesita la forma de pasar este parámetro a Java -Dhttps.protocols=TLSv1.2. Por lo tanto, debe encontrar cómo pasar los parámetros de Java en SBT.
v.ladynev
67

En junio de 2018, en un esfuerzo por aumentar la seguridad y cumplir con los estándares modernos, los inseguros protocolos TLS 1.0 y 1.1 ya no serán compatibles con las conexiones SSL a Central. Esto solo debería afectar a los usuarios de Java 6 (y Java 7) que también usan https para acceder a central, que según nuestras métricas es inferior al .2% de los usuarios.

Para obtener más detalles y soluciones, consulte el blog y las preguntas frecuentes aquí: https://blog.sonatype.com/enhancing-ssl-security-and-http/2-support-for-central

Brian Fox
fuente
El enlace en el artículo de blog.sonatype.com está lanzando 404. Es porque actualizaron el enlace a central.sonatype.org/articles/2018/May/04/… .
Blueboye
50

El siguiente comando me ayudó (ejecutar en bash antes de ejecutar mvn)

export MAVEN_OPTS=-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
Simon_Prewo_Frankfurt
fuente
3
En Windows configure MAVEN_OPTS = -Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2
Lele
después de configurar esto, toda la descarga http funciona para mí. sin embargo, https tiene el problema siguiente: Error al recopilar dependencias en org.netpreserve.commons: webarchive-commons: jar: 1.1.2 -> org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Error al leer el artefacto descriptor para org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: No se pudo transferir el artefacto org.apache.hadoop: hadoop-core: pom: 0.20.2-cdh3u4 de / a cloudera ( repository.cloudera. com / artifactory / cloudera-repos ): Recibió alerta fatal: handshake_failure cualquier ayuda
Karn_way
1
¡Funciona de maravilla! ¡Gracias! (Probado en CentOs)
DarSta
¿Es esto seguro?
Ganesh Satpute
¡Gracias! ¡Esto me ayudó!
Ben llama el
17

Como dijo @ v.ladynev, funciona con JDK 1.7

Con Eclipse, para poder realizar un "Ejecutar como" maven installcon el parámetro de línea de comandos TLS, simplemente configure el JDK que está utilizando.

Abra el cuadro de diálogo a través de Ventana > Preferencias > Java > JRE instalados .

Luego resalte el que está usando (debe ser un JDK , no un JRE ), haga clic en Editar . En el campo "Argumentos de VM predeterminados", complete el valor -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2. Como se muestra abajo:

ingrese la descripción de la imagen aquí

Limpie el proyecto (tal vez opcional), luego vuelva a ejecutar a maven install.

Amessihel
fuente
Recibo esto Error al recopilar dependencias en org.netpreserve.commons: webarchive-commons: jar: 1.1.2 -> org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Error al leer el descriptor de artefactos para org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: No se pudo transferir el artefacto org.apache.hadoop: hadoop-core: pom: 0.20.2-cdh3u4 de / a cloudera ( repository.cloudera.com/ artifactory / cloudera-repos ): alerta fatal recibida: handshake_failure parece que la descarga de https tiene un problema. por favor ayuda Estoy usando java1.7_80 y maven 3.6
Karn_way
Continuemos esta discusión en el chat .
Amessihel
6

Lo siento, no sé por qué recibes el mensaje de error. Sin embargo, estoy usando Java 7 y Windows 10 y la solución para mí fue usar temporalmente Java 8 cambiando la JAVA_HOMEvariable de entorno. Entonces podría correr mvn instally buscar desde el repositorio central de Maven.

propaciencia
fuente
2
Esto funcionó de maravilla para mí. Como usuario de MyEclipse, todo lo que tenía que hacer era cambiar el JRE para la configuración de ejecución de maven a 1.8 y luego volver a 1.7 después de que maven hubiera descargado lo que necesitaba.
Thor Hovden
0

Para configurar las propiedades de Java en el servidor de aplicaciones de Windows:

  • configurar tomcat> ejecutar como administrador
  • luego agregue opciones de Java:

  • reiniciar servicio.

Don julio
fuente
-Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2
Don Julio
& -Djdk.tls.client.protocols = TLSv1, TLSv1.1, TLSv1.2
Don Julio