Warum erhalte ich von Maven Central die Meldung "Schwerwiegende Warnung erhalten: protocol_version" oder "Peer nicht authentifiziert"?


132

Beim Herstellen einer Verbindung zu Maven Central / https://repo1.maven.org nach dem 18. Juni 2018 werden die folgenden Fehler angezeigt .

Received fatal alert: protocol_version

oder

Received fatal alert: peer not authenticated

2
Beeindruckender Test, den Sie dort für die Zukunft gemacht haben.
Thor Hovden

Antworten:


188

Lösung 1: Konfigurieren Sie Java 7

Es ist erforderlich, das TLS 1.2-Protokoll mit der Java-Eigenschaft in der Befehlszeile zu aktivieren

mvn -Dhttps.protocols=TLSv1.2 install

install ist nur ein Beispiel für ein Ziel

Der gleiche Fehler für antkann auf diese Weise behoben werden

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

Lösung 2: Verwenden Sie Java 7 mit Oracle Advanced Support

Das Problem kann auch durch Aktualisieren der Java 7-Version behoben werden. Die letzte verfügbare Version ( 7u80) behebt das Problem jedoch nicht. Es muss ein Update verwendet werden, das mit Oracle Advanced Support (früher bekannt als Java for Business) bereitgestellt wird.

Lösung 3: Verwenden Sie stattdessen Java 8

Konfigurieren Sie $JAVA_HOME, um auf Java 8 zu verweisen.


Du hast hier einen Tag gespart!
Herve Mutombo

Können Sie mir bitte sagen, was das Äquivalent in SBT ist, das ich versucht habe, sbt -Dhttps.protocols=TLSv1.2 instalaber es funktioniert nicht
G.Saleh

@ G.Saleh Sie benötigen die Möglichkeit, diesen Parameter an Java zu übergeben -Dhttps.protocols=TLSv1.2. Sie müssen also herausfinden, wie Sie Java-Parameter in SBT übergeben können.
v.ladynev

67

Im Juni 2018 werden die unsicheren TLS 1.0- und 1.1-Protokolle für SSL-Verbindungen zu Central nicht mehr unterstützt, um die Sicherheit zu erhöhen und die modernen Standards einzuhalten. Dies sollte nur Benutzer von Java 6 (und Java 7) betreffen, die ebenfalls https für den Zugriff auf Central verwenden, was nach unseren Metriken weniger als 0,2% der Benutzer ausmacht.

Weitere Details und Problemumgehungen finden Sie im Blog und in den FAQ hier: https://blog.sonatype.com/enhancing-ssl-security-and-http/2-support-for-central


Der Link im Artikel blog.sonatype.com wirft 404. Dies liegt daran, dass der Link zu central.sonatype.org/articles/2018/May/04/… aktualisiert wurde .
Blueboye

50

Der folgende Befehl hat mir geholfen (Bash ausführen, bevor mvn ausgeführt wird)

export MAVEN_OPTS=-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2

3
Unter Windows setzen Sie MAVEN_OPTS = -Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2
Lele

Nach dem Einstellen funktioniert der gesamte http-Download für mich. Bei https tritt jedoch das folgende Problem auf. Fehler beim Sammeln von Abhängigkeiten unter org.netpreserve.commons: webarchive-commons: jar: 1.1.2 -> org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Fehler beim Lesen des Artefakts Deskriptor für org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Artefakt org.apache.hadoop: hadoop-core: pom: 0.20.2-cdh3u4 konnte nicht von / nach cloudera ( repository.cloudera) übertragen werden. com / artifactory / cloudera-repos ): Erhaltene tödliche Warnung: handshake_failure jede Hilfe
Karn_way

1
Klappt wunderbar! Vielen Dank! (Versucht auf CentOs)
DarSta

Ist das sicher?
Ganesh Satpute

Danke! Das hat es für mich in Gang gebracht!
Ben Call

17

Wie @ v.ladynev sagte, funktioniert es mit JDK 1.7

Um mit Eclipse ein "Ausführen als" maven installmit dem TLS-Befehlszeilenparameter ausführen zu können , konfigurieren Sie einfach das von Ihnen verwendete JDK.

Öffnen Sie den Dialog über Fenster > Einstellungen > Java > Installierte JREs .

Markieren Sie dann das verwendete (sollte ein JDK sein , kein JRE ) und klicken Sie auf Bearbeiten . Geben Sie im Feld "Standard-VM-Argumente" den Wert ein -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2. Wie nachfolgend dargestellt:

Geben Sie hier die Bildbeschreibung ein

Bereinigen Sie das Projekt (möglicherweise optional) und führen Sie a erneut aus maven install.


Ich erhalte dies Fehler beim Sammeln von Abhängigkeiten bei org.netpreserve.commons: webarchive-commons: jar: 1.1.2 -> org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Fehler beim Lesen des Artefaktdeskriptors für org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Artefakt konnte nicht übertragen werden org.apache.hadoop: hadoop-core: pom: 0.20.2-cdh3u4 von / nach cloudera ( repository.cloudera.com/ artifactory / cloudera-repos ): Schwerwiegende Warnung erhalten: handshake_failure sieht aus, als hätte der https-Download ein Problem. Bitte helfen Sie mir, ich benutze Java1.7_80 und Maven 3.6
Karn_way


6

Es tut mir leid, ich weiß nicht, warum Sie die Fehlermeldung erhalten. Ich verwende jedoch Java 7 und Windows 10 und die Lösung für mich bestand darin, Java 8 vorübergehend durch Ändern der JAVA_HOMEUmgebungsvariablen zu verwenden. Dann könnte ich laufen mvn installund aus dem Maven Central Repository holen.


2
Das hat Wunder für mich gewirkt. Als Benutzer von MyEclipse musste ich lediglich die JRE für die Maven-Run-Konfiguration auf 1.8 und dann wieder auf 1.7 ändern, nachdem Maven das benötigte heruntergeladen hatte.
Thor Hovden



0

So legen Sie die Java-Eigenschaften auf dem Windows-App-Server fest:

  • Tomcat konfigurieren> Als Administrator ausführen
  • Fügen Sie dann Java-Optionen hinzu:

  • Dienst neu starten.


-Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2
Don Julio

& -Djdk.tls.client.protocols = TLSv1, TLSv1.1, TLSv1.2
Don Julio
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.