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

132

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

Received fatal alert: protocol_version

или

Received fatal alert: peer not authenticated
Брайан Фокс
источник
2
Впечатляющее испытание, которое вы сделали там на будущее.
Тор Ховден

Ответы:

188

Решение 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.

v.ladynev
источник
Вы сэкономили здесь день!
Эрве Мутомбо
sbt -Dhttps.protocols=TLSv1.2 instal
Подскажите,
@ G.Saleh Вам нужен способ передать этот параметр в java -Dhttps.protocols=TLSv1.2. Итак, вам нужно найти, как передавать параметры java в SBT.
v.ladynev
67

В июне 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

Брайан Фокс
источник
Ссылка в статье blog.sonatype.com выбрасывает 404. Это потому, что они обновили ссылку на central.sonatype.org/articles/2018/May/04/… .
Blueboye 09
Оригинальная ссылка снова работает.
мануэльвигарсия
51

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

export MAVEN_OPTS=-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
Simon_Prewo_Frankfurt
источник
3
В Windows установите MAVEN_OPTS = -Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2
Lele
после установки этого все 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 любая помощь
Karn_way 01
1
Работает как шарм! Спасибо! (Пробовал на CentOs)
DarSta
Это безопасно?
Ганеш Сатпуте
Спасибо! У меня все получилось!
Бен Колл
17

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

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

Откройте диалоговое окно, выбрав « Окно» > « Настройки» > « Java» > « Установленные JRE» .

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

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

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

Amessihel
источник
Я получаю это Не удалось собрать зависимости на 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
Karn_way 01
Давайте продолжим эту дискуссию в чате .
Амессихель
6

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

propatience
источник
2
Это творило для меня чудеса. Как пользователю MyEclipse, все, что мне нужно было сделать, это изменить JRE для конфигурации запуска maven на 1.8, а затем снова на 1.7 после того, как maven загрузит то, что ему нужно.
Тор Ховден
0

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

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

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

Дон Хулио
источник
-Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2
Дон Хулио
& -Djdk.tls.client.protocols = TLSv1, TLSv1.1, TLSv1.2
Дон Хулио