Pourquoi est-ce que je reçois «Alerte fatale reçue: version_protocole» ou «pair non authentifié» de Maven Central?

132

J'obtiens les erreurs ci-dessous lors de la connexion à Maven Central / https://repo1.maven.org après le 18 juin 2018.

Received fatal alert: protocol_version

ou

Received fatal alert: peer not authenticated
Brian Fox
la source
2
Test impressionnant que vous avez fait là-bas pour le futur.
Thor Hovden

Réponses:

188

Solution 1: configurer Java 7

Il est nécessaire d'activer le protocole TLS 1.2 avec la propriété Java dans la ligne de commande

mvn -Dhttps.protocols=TLSv1.2 install

install est juste un exemple d'objectif

La même erreur pour antpeut être résolue de cette manière

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

Solution 2: utilisez Java 7 avec Oracle Advanced Support

Le problème peut également être résolu en mettant à jour la version Java 7. Mais la dernière version disponible ( 7u80) ne résout pas le problème. Il est nécessaire d'utiliser une mise à jour fournie avec Oracle Advanced Support (anciennement Java for Business).

Solution 3: utilisez Java 8 à la place

Configurez $JAVA_HOMEpour pointer vers Java 8.

v.ladynev
la source
Vous avez sauvé une journée ici!
Herve Mutombo
Pouvez-vous me dire s'il vous plaît quel est l'équivalent en SBT que j'ai essayé sbt -Dhttps.protocols=TLSv1.2 instalmais cela ne fonctionne pas
G.Saleh
@ G.Saleh Vous avez besoin du moyen de transmettre ce paramètre à java -Dhttps.protocols=TLSv1.2. Vous devez donc trouver comment passer les paramètres java dans SBT.
v.ladynev
67

En juin 2018, dans le but d'améliorer la sécurité et de se conformer aux normes modernes, les protocoles non sécurisés TLS 1.0 et 1.1 ne seront plus pris en charge pour les connexions SSL à Central. Cela ne devrait affecter que les utilisateurs de Java 6 (et Java 7) qui utilisent également https pour accéder au central, ce qui, selon nos métriques, représente moins de 0,2% des utilisateurs.

Pour plus de détails et de solutions de contournement, consultez le blog et la FAQ ici: https://blog.sonatype.com/enhancing-ssl-security-and-http/2-support-for-central

Brian Fox
la source
Le lien dans l'article blog.sonatype.com jette 404. C'est parce qu'ils ont mis à jour le lien vers central.sonatype.org/articles/2018/May/04/… .
Blueboye
50

La commande suivante m'a aidé (exécution sur bash avant d'exécuter mvn)

export MAVEN_OPTS=-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
Simon_Prewo_Frankfurt
la source
3
Sous Windows, définissez MAVEN_OPTS = -Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2
Lele
après avoir configuré tout ce téléchargement http fonctionne pour moi. cependant https a un problème comme ci-dessous. Échec de collecte des dépendances sur org.netpreserve.commons: webarchive-commons: jar: 1.1.2 -> org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: échec de lecture de l'artefact descripteur pour org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Impossible de transférer l'artefact org.apache.hadoop: hadoop-core: pom: 0.20.2-cdh3u4 de / vers cloudera ( repository.cloudera. com / artifactory / cloudera-repos ): Alerte fatale reçue: handshake_failure any help
Karn_way
1
Fonctionne comme un charme! Merci! (Essayé sur CentOs)
DarSta
Est-ce sécurisé?
Ganesh Satpute le
Merci! Cela l'a fait pour moi!
Ben appelez le
17

Comme dit @ v.ladynev, cela fonctionne avec JDK 1.7

Avec Eclipse, pour pouvoir effectuer un "Exécuter en tant que" maven installavec le paramètre de ligne de commande TLS, configurez simplement le JDK que vous utilisez.

Ouvrez la boîte de dialogue via Fenêtre > Préférences > Java > JRE installés .

Ensuite, mettez en surbrillance celui que vous utilisez (devrait être un JDK , pas un JRE ), cliquez sur Modifier . Dans le champ "Arguments VM par défaut", remplissez la valeur -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2. Comme indiqué ci-dessous:

entrez la description de l'image ici

Nettoyez le projet (peut-être facultatif), puis réexécutez un fichier maven install.

Amessihel
la source
J'obtiens cela Échec de la collecte des dépendances sur org.netpreserve.commons: webarchive-commons: jar: 1.1.2 -> org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Échec de lecture du descripteur d'artefact pour org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Impossible de transférer l'artefact org.apache.hadoop: hadoop-core: pom: 0.20.2-cdh3u4 de / vers cloudera ( repository.cloudera.com/ artifactory / cloudera-repos ): Alerte fatale reçue: handshake_failure semble que le téléchargement https a un problème. s'il vous plaît aidez-moi J'utilise java1.7_80 et maven 3.6
Karn_way
Continuons cette discussion dans le chat .
Amessihel
6

Je suis désolé, je ne sais pas pourquoi vous obtenez le message d'erreur. Cependant, j'utilise Java 7 et Windows 10 et la solution pour moi était d'utiliser temporairement Java 8 en modifiant la JAVA_HOMEvariable d'environnement. Ensuite, je pourrais exécuter mvn installet récupérer à partir du référentiel central Maven.

propatience
la source
2
Cela a fait des merveilles pour moi. En tant qu'utilisateur de MyEclipse, tout ce que j'avais à faire était de changer le JRE de la configuration d'exécution de maven en 1.8, puis de revenir à 1.7 après que maven eut téléchargé ce dont il avait besoin.
Thor Hovden
0

Pour définir les propriétés Java sur le serveur d'applications Windows:

  • configurer tomcat> exécuter en tant qu'administrateur
  • puis ajoutez les opts Java:

  • redémarrer le service.

Don Julio
la source
-Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2
Don Julio
& -Djdk.tls.client.protocols = TLSv1, TLSv1.1, TLSv1.2
Don Julio