Maven Central에서 "치명적 경보 수신 : protocol_version"또는 "피어 인증되지 않음"이 표시되는 이유는 무엇입니까?


답변:


188

해결 방법 1 : Java 7 구성

명령 행에서 Java 특성으로 TLS 1.2 프로토콜을 사용 가능하게해야합니다.

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 : Oracle Advanced Support와 함께 Java 7 사용

Java 7 버전을 업데이트하여 문제를 해결할 수도 있습니다. 그러나 마지막으로 사용 가능한 버전 ( 7u80)으로 문제가 해결되지 않습니다. Oracle Advanced Support (이전의 Java for Business)와 함께 제공된 업데이트를 사용해야합니다.

해결책 3 : 대신 Java 8 사용

$JAVA_HOMEJava 8을 가리 키도록 구성하십시오 .


당신은 여기에 하루를 저장했습니다!
Herve Mutombo

내가 시도한 SBT와 동등한 것이 무엇인지 알려주시겠습니까sbt -Dhttps.protocols=TLSv1.2 instal
그래도

@ G.Saleh이 파라미터를 java에 전달하는 방법이 필요합니다 -Dhttps.protocols=TLSv1.2. 따라서 SBT에서 Java 매개 변수를 전달하는 방법을 찾아야합니다.
v.ladynev

67

2018 년 6 월 보안을 강화하고 최신 표준을 준수하기 위해 안전하지 않은 TLS 1.0 및 1.1 프로토콜은 더 이상 Central에 대한 SSL 연결에 지원되지 않습니다. 이는 https를 사용하여 중앙에 액세스하는 Java 6 (및 Java 7) 사용자에게만 해당됩니다.이 통계는 사용자의 .2 % 미만입니다.

자세한 내용과 해결 방법은 다음 블로그 및 FAQ를 참조하십시오. 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

50

다음 명령이 도움이되었습니다 (mvn을 실행하기 전에 bash에서 실행)

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

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 / 클라우 데라-의 repos ) : 수신 치명적인 경고 : handshake_failure 어떤 도움
Karn_way

1
매력처럼 작동합니다! 감사! (CentO에서 시험)
DarSta

안전한가요?
Ganesh Satpute

감사합니다! 이것은 나를 위해 가고있어!
벤 콜

17

@ v.ladynev가 말했듯이 JDK 1.7에서 작동합니다.

Eclipse를 사용하여 "Run As"을 수행 할 수 있도록 maven install 에서 TLS 명령 행 매개 변수 하려면 사용중인 JDK를 구성하십시오.

> 환경 설정 > Java > 설치된 JRE를 통해 대화 상자를여십시오. .

그런 다음 사용중인 것을 강조 표시하고 ( JRE가 아닌 JDK 이어야 함 ) 편집을 클릭 하십시오 . "기본 VM 인수"필드에서 값을 채우십시오 . 아래 그림과 같이:-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2

여기에 이미지 설명을 입력하십시오

프로젝트를 정리 한 다음 (선택 사항 일 수 있음) a을 다시 실행하십시오 maven install.


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을 사용하고 도와주세요 3.6 받는다는
Karn_way


6

죄송합니다. 오류 메시지가 나타나는 이유를 모르겠습니다. 그러나 Java 7 및 Windows 10을 사용하고 있으며 JAVA_HOME환경 변수 를 변경하여 일시적으로 Java 8을 사용하는 것이 해결책이었습니다 . 그런 다음 mvn installMaven Central Repository에서 실행 하고 가져올 수 있습니다 .


2
이것은 나를 위해 놀라운 일을했다. MyEclipse의 사용자로서 maven 실행 구성의 JRE를 1.8로 변경 한 다음 maven이 필요한 것을 다운로드 한 후 다시 1.7로 변경하는 것이 었습니다.
Thor Hovden



0

Windows 앱 서버에서 Java 특성을 설정하려면 다음을 수행하십시오.

  • 바람둥이 구성> 관리자 권한으로 실행
  • 그런 다음 Java opts를 추가하십시오.

  • 서비스를 다시 시작하십시오.


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

& -Djdk.tls.client.protocols = TLSv1, TLSv1.1, TLSv1.2
돈 줄리오
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.