Почему я получаю фатальное предупреждение: версия_протокола или одноранговый узел не аутентифицирован от Maven Central?

Я получаю указанные ниже ошибки при подключении к Maven Central / https://repo1.maven.org после 18 июня. 2018.

Received fatal alert: protocol_version

or

Received fatal alert: peer not authenticated

person Brian Fox    schedule 12.06.2018    source источник
comment
Впечатляющее испытание, которое вы сделали там на будущее.   -  person Thor Hovden    schedule 27.03.2019
comment
Переход на Java 11 устраняет ошибку.   -  person Liscare    schedule 02.06.2021


Ответы (10)


Решение 1. Настройте Java 7

Необходимо включить протокол TLS 1.2 со свойством Java в командной строке.

mvn -Dhttps.protocols=TLSv1.2 install

install - это всего лишь пример цели

Та же ошибка для ant может быть решена таким способом

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

Решение 2. Используйте Java 7 с Oracle Advanced Support

Также проблему можно решить обновлением версии Java 7. Но последняя доступная версия (7u80) не решает проблему. Необходимо использовать обновление, поставляемое с Oracle Advanced Support (ранее известное как Java for Business).

Решение 3. Вместо этого используйте Java 8

Настройте $JAVA_HOME так, чтобы он указывал на Java 8.

person v.ladynev    schedule 19.06.2018
comment
Вы сэкономили здесь день! - person Herve Mutombo; 29.03.2019
comment
Подскажите пожалуйста, какой эквивалент в SBT Я пробовал sbt -Dhttps.protocols=TLSv1.2 instal но не работает - person G.Saleh; 06.07.2020
comment
@ G.Saleh Вам нужен способ передать этот параметр в java -Dhttps.protocols=TLSv1.2. Итак, вам нужно найти, как передавать параметры java в SBT. - person v.ladynev; 06.07.2020

В июне 2018 года в целях повышения безопасности и соответствия современным стандартам незащищенные протоколы TLS 1.0 и 1.1 больше не будут поддерживаться для SSL-подключений к Central. Это должно коснуться только пользователей Java 6 (и Java 7), которые также используют https для доступа к центральному сайту, что, по нашим показателям, составляет менее 0,2% пользователей.

Дополнительные сведения и обходные пути см. В блоге и часто задаваемых вопросах здесь: https://blog.sonatype.com/enhancing-ssl-security-and-http/2-support-for-central

person Brian Fox    schedule 12.06.2018
comment
Ссылка в статье blog.sonatype.com выбрасывает 404. Это потому, что они обновили ссылку на central.sonatype.org/articles/2018/May/04/. - person Blueboye; 09.07.2018

Следующая команда помогла мне (выполнение на bash перед запуском mvn)

export MAVEN_OPTS=-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
person Simon_Prewo_Frankfurt    schedule 14.08.2018
comment
В Windows установите MAVEN_OPTS = -Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2 - person Lele; 21.01.2019
comment
после установки этого у меня работает вся загрузка http. однако https имеет проблему, как показано ниже. Не удалось собрать зависимости на org.netpreserve.commons: webarchive-commons: jar: 1.1.2 - ›org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Не удалось прочитать артефакт. дескриптор для org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Не удалось передать артефакт org.apache.hadoop: hadoop-core: pom: 0.20.2-cdh3u4 из / в cloudera (repository.cloudera.com/artifactory/cloudera-repos): получено фатальное предупреждение: handshake_failure любая помощь - person Karn_way; 01.02.2019
comment
Работает как шарм! Спасибо! (Пробовал на CentOs) - person DarSta; 12.03.2019
comment
Это безопасно? - person Ganesh Satpute; 11.04.2020
comment
Благодарю вас! У меня это получилось! - person Ben Call; 03.06.2020
comment
Я использовал экспорт только с версией 1.2, и у меня это сработало. Это также безопасный способ, как указано в документации: export MAVEN_OPTS=-Dhttps.protocols=TLSv1.2 - person manuelvigarcia; 06.08.2020

Как сказал @ v.ladynev, он работает с JDK 1.7

В Eclipse, чтобы иметь возможность выполнять «Запуск от имени» maven install с параметром командной строки TLS, просто настройте JDK, который вы используете.

Откройте диалоговое окно через Окно> Настройки> Java > Установленные JRE.

Затем выделите тот, который вы используете (это должен быть JDK, а не JRE), нажмите Изменить. . В поле «Аргументы ВМ по умолчанию» введите значение -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2. Как показано ниже:

введите описание изображения здесь

Очистите проект (возможно, необязательно), затем повторно запустите maven install.

person Amessihel    schedule 02.10.2018
comment
Я получаю это Не удалось собрать зависимости на org.netpreserve.commons: webarchive-commons: jar: 1.1.2 - ›org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Не удалось прочитать дескриптор артефакта для org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Не удалось передать артефакт org.apache.hadoop: hadoop-core: pom: 0.20.2-cdh3u4 из / в cloudera (repository.cloudera.com/artifactory/cloudera-repos): получено фатальное предупреждение: handshake_failure выглядит проблема с загрузкой https . пожалуйста, помогите, я использую java1.7_80 и maven 3.6 - person Karn_way; 01.02.2019
comment
Давайте продолжим это обсуждение в чате. - person Amessihel; 25.02.2019

Извините, я не знаю, почему вы получаете сообщение об ошибке. Однако я использую Java 7 и Windows 10, и решением для меня было временно использовать Java 8, изменив переменную среды JAVA_HOME. Затем я мог запустить mvn install и получить данные из центрального репозитория Maven.

person propatience    schedule 22.08.2018
comment
Это творило для меня чудеса. Как пользователю MyEclipse, все, что мне нужно было сделать, это изменить JRE для конфигурации запуска maven на 1.8, а затем снова на 1.7 после того, как maven загрузит то, что ему нужно. - person Thor Hovden; 27.03.2019

Обратите внимание, что если вы используете IBM JDK, вам также может потребоваться установить

com.ibm.jsse2.overrideDefaultTLS=true

https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.security.component.80.doc/security-component/jsse2Docs/matchsslcontext_tls.html#matchsslcontext_tls.html#matchsslcontext_tls / а>

person Edoardo Comar    schedule 20.06.2018

Обновите версию maven до 3.6.3 и запустите

mvn -Dhttps.protocols=TLSv1.2 install

он работал на CentOS 6.9

person icaglar    schedule 29.08.2020

Добавьте -Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2 к аргументам виртуальной машины по умолчанию в разделе Window - ›Preferences -› Java - ›Установленные JRE в Eclipse, проверьте и запустите свой проект, он должен и будет работать.

person sbaredd    schedule 27.04.2021
comment
Не могли бы вы подробнее рассказать, зачем это нужно? - person ronnyfm; 28.04.2021

Используя jdk7-u221, мне нужно было установить расширение Java Cryptography Extension (JCE)

Расширение криптографии Java JCE

person josuedani    schedule 25.10.2019

Для настройки свойств Java на сервере приложений Windows:

  • настроить tomcat> запустить от имени администратора
  • затем добавьте параметры Java:

  • перезапустить службу.

person Don Julio    schedule 06.02.2020
comment
-Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2 - person Don Julio; 06.02.2020
comment
& -Djdk.tls.client.protocols = TLSv1, TLSv1.1, TLSv1.2 - person Don Julio; 06.02.2020