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
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
Antworten:
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 ant
kann 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.
sbt -Dhttps.protocols=TLSv1.2 instal
aber es funktioniert nicht
-Dhttps.protocols=TLSv1.2
. Sie müssen also herausfinden, wie Sie Java-Parameter in SBT übergeben können.
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 folgende Befehl hat mir geholfen (Bash ausführen, bevor mvn ausgeführt wird)
export MAVEN_OPTS=-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
Wie @ v.ladynev sagte, funktioniert es mit JDK 1.7
Um mit Eclipse ein "Ausführen als" maven install
mit 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:
Bereinigen Sie das Projekt (möglicherweise optional) und führen Sie a erneut aus maven install
.
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_HOME
Umgebungsvariablen zu verwenden. Dann könnte ich laufen mvn install
und aus dem Maven Central Repository holen.
Beachten Sie, dass Sie bei Verwendung des IBM JDK möglicherweise auch festlegen müssen
com.ibm.jsse2.overrideDefaultTLS=true
Mit jdk7-u221 musste ich die Java Cryptography Extension (JCE) installieren.