Dlaczego otrzymuję komunikat „Otrzymano alert krytyczny: wersja_protokołu” lub „Brak uwierzytelnienia partnera” z Maven Central?

136

Otrzymuję poniższe błędy podczas łączenia się z Maven Central / https://repo1.maven.org po 18 czerwca 2018 r.

Received fatal alert: protocol_version

lub

Received fatal alert: peer not authenticated
Brian Fox
źródło
2
Imponujący test na przyszłość.
Thor Hovden

Odpowiedzi:

195

Rozwiązanie 1: Skonfiguruj Javę 7

Konieczne jest włączenie protokołu TLS 1.2 z właściwością Java w linii poleceń

mvn -Dhttps.protocols=TLSv1.2 install

install to tylko przykład celu

Ten sam błąd antmożna rozwiązać w ten sposób

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

Rozwiązanie 2: użyj języka Java 7 z Oracle Advanced Support

Problem można również rozwiązać, aktualizując wersję Java 7. Ale ostatnia dostępna wersja ( 7u80) nie rozwiązuje problemu. Konieczne jest skorzystanie z aktualizacji dostarczonej z Oracle Advanced Support (wcześniej znanej jako Java for Business).

Rozwiązanie 3: Zamiast tego użyj Java 8

Skonfiguruj tak, $JAVA_HOMEaby wskazywała na Javę 8.

v.ladynev
źródło
1
Zaoszczędziłeś tutaj dzień!
Herve Mutombo
Czy możesz mi powiedzieć, proszę, jaki jest odpowiednik w SBT próbowałem, sbt -Dhttps.protocols=TLSv1.2 instalale nie działa
G.Saleh,
@ G.Saleh Potrzebujesz sposobu na przekazanie tego parametru do java -Dhttps.protocols=TLSv1.2. Musisz więc dowiedzieć się, jak przekazywać parametry Java w SBT.
przeciwko Ladynev
wielkie dzięki, uratowałeś mi dzień
Fatima Khan
@FatimaKhan Zawsze gotowy do pomocy
v.ladynev
67

W czerwcu 2018 r., Starając się podnieść poziom bezpieczeństwa i zachować zgodność z nowoczesnymi standardami, niezabezpieczone protokoły TLS 1.0 i 1.1 nie będą już obsługiwane dla połączeń SSL z centralą. Powinno to mieć wpływ tylko na użytkowników Java 6 (i Java 7), którzy również używają protokołu HTTPS do uzyskiwania dostępu do centrali, co według naszych wskaźników stanowi mniej niż 0,2% użytkowników.

Aby uzyskać więcej informacji i obejść, zobacz blog i często zadawane pytania tutaj: https://blog.sonatype.com/enhancing-ssl-security-and-http/2-support-for-central

Brian Fox
źródło
Link w artykule blog.sonatype.com wyrzuca 404. To dlatego, że zaktualizowali link do central.sonatype.org/articles/2018/May/04/… .
Blueboye,
51

Pomogło mi następujące polecenie (wykonanie na bash przed uruchomieniem mvn)

export MAVEN_OPTS=-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
Simon_Prewo_Frankfurt
źródło
3
W systemie Windows ustaw MAVEN_OPTS = -Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2
Lele
po ustawieniu tego wszystkiego pobieranie http działa dla mnie. jednak https ma problem jak poniżej Nie udało się zebrać zależności w org.netpreserve.commons: webarchive-commons: jar: 1.1.2 -> org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Błąd odczytu artefaktu deskryptor dla org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Nie można przenieść artefaktu org.apache.hadoop: hadoop-core: pom: 0.20.2-cdh3u4 z / do cloudera ( repository.cloudera. com / artifactory / cloudera-repos ): Otrzymano alert krytyczny: handshake_failure any help
Karn_way
1
Działa jak marzenie! Dzięki! (Próbowano w CentOs)
DarSta
Czy to jest bezpieczne?
Ganesh Satpute
Dziękuję Ci! To mi się podoba!
Ben Call
17

Jak powiedział @ v.ladynev, działa z JDK 1.7

W przypadku Eclipse, aby móc wykonać operację „Uruchom jako” maven installz parametrem wiersza poleceń TLS, wystarczy skonfigurować używany pakiet JDK.

Otwórz okno dialogowe poprzez Okno > Preferencje > Java > Zainstalowane środowiska JRE .

Następnie zaznacz ten, którego używasz (powinien to być JDK , a nie JRE ), kliknij Edytuj . W polu „Default VM arguments” wpisz wartość -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2. Jak pokazano niżej:

wprowadź opis obrazu tutaj

Wyczyść projekt (może opcjonalnie), a następnie ponownie uruchom plik maven install.

Amessihel
źródło
Otrzymuję ten komunikat Nie udało się zebrać zależności w org.netpreserve.commons: webarchive-commons: jar: 1.1.2 -> org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Nie udało się odczytać deskryptora artefaktu dla org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Nie można przenieść artefaktu org.apache.hadoop: hadoop-core: pom: 0.20.2-cdh3u4 z / do cloudera ( repository.cloudera.com/ artifactory / cloudera-repos ): Otrzymano alert krytyczny: błąd handshake_failure wygląda na problem z pobieraniem https. proszę o pomoc Używam java1.7_80 i maven 3.6
Karn_way
6

Przepraszam, nie wiem, dlaczego otrzymujesz komunikat o błędzie. Jednak używam Java 7 i Windows 10, a rozwiązaniem dla mnie było tymczasowe użycie Java 8 poprzez zmianę JAVA_HOMEzmiennej środowiskowej. Wtedy mogłem uruchomić mvn installi pobrać z Maven Central Repository.

cierpliwość
źródło
2
To zdziałało dla mnie cuda. Jako użytkownik MyEclipse, wszystko, co musiałem zrobić, to zmienić JRE dla konfiguracji uruchamiania Mavena na 1.8, a następnie z powrotem na 1.7 po tym, jak maven ściągnął to, czego potrzebował.
Thor Hovden
0

Aby ustawić właściwości Java na serwerze aplikacji systemu Windows:

  • skonfiguruj tomcat> uruchom jako admin
  • następnie dodaj opcje Java:

  • zrestartuj usługę.

Don Julio
źródło
-Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2
Don Julio
& -Djdk.tls.client.protocols = TLSv1, TLSv1.1, TLSv1.2
Don Julio
0

Zaktualizuj wersję maven do 3.6.3 i uruchom

mvn -Dhttps.protocols=TLSv1.2 install

działało na centach 6,9

icaglar
źródło