เหตุใดฉันจึงได้รับ“ ได้รับการแจ้งเตือนที่ร้ายแรง: protocol_version” หรือ“ ไม่ได้รับการรับรองความถูกต้องแบบเพียร์” จาก Maven Central


132

ฉันได้รับข้อผิดพลาดด้านล่างเมื่อเชื่อมต่อกับ Maven Central / https://repo1.maven.orgหลังวันที่ 18 มิถุนายน 2018

Received fatal alert: protocol_version

หรือ

Received fatal alert: peer not authenticated

2
การทดสอบที่น่าประทับใจที่คุณทำในอนาคต
Thor Hovden

คำตอบ:


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


คุณช่วยชีวิตตรงนี้ได้หนึ่งวัน!
Herve Mutombo

คุณช่วยบอกฉันหน่อยได้ไหมว่าอะไรที่เทียบเท่าใน SBT ฉันลองแล้วsbt -Dhttps.protocols=TLSv1.2 instalแต่มันไม่ได้ผล
G.Saleh

@ G.Saleh -Dhttps.protocols=TLSv1.2คุณต้องมีวิธีที่จะผ่านพารามิเตอร์นี้เพื่อจาวา ดังนั้นคุณต้องหาวิธีส่งพารามิเตอร์ java ใน SBT
v.ladynev

67

ในเดือนมิถุนายน 2018 ด้วยความพยายามที่จะยกระดับความปลอดภัยและปฏิบัติตามมาตรฐานสมัยใหม่โปรโตคอล TLS 1.0 & 1.1 ที่ไม่ปลอดภัยจะไม่ได้รับการสนับสนุนสำหรับการเชื่อมต่อ SSL ไปยัง Central อีกต่อไป สิ่งนี้ควรมีผลเฉพาะกับผู้ใช้ Java 6 (และ Java 7) ที่ใช้ https ในการเข้าถึงส่วนกลางซึ่งโดยเมตริกของเรามีผู้ใช้น้อยกว่า. 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

ลิงค์เดิมใช้งานได้อีกครั้ง
manuelvigarcia

51

คำสั่งต่อไปนี้ช่วยฉัน (ดำเนินการกับ bash ก่อนที่จะเรียกใช้ mvn)

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: ล้มเหลวในการอ่านสิ่งประดิษฐ์ descriptor สำหรับ 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 any help
Karn_way

1
ใช้งานได้เหมือนมีเสน่ห์! ขอบคุณ! (Tried on CentOs)
DarSta

ปลอดภัยหรือไม่
Ganesh Satpute

ขอบคุณ! มันจะไปสำหรับฉัน!
Ben Call

17

ตามที่กล่าวไว้ว่า @ v.ladynev ทำงานร่วมกับ JDK 1.7

ด้วย Eclipse เพื่อให้สามารถดำเนินการ "Run As" maven installด้วยพารามิเตอร์บรรทัดคำสั่ง TLS เพียงกำหนดค่า JDK ที่คุณใช้

เปิดกล่องโต้ตอบผ่านหน้าต่าง > การตั้งค่า > Java > JREs ติดตั้ง

แล้วไฮไลท์ที่คุณกำลังใช้ (ควรจะเป็นJDKไม่JRE ) คลิกที่แก้ไข ในช่อง "เริ่มต้นการขัดแย้ง VM" -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2กรอกค่า ดังแสดงด้านล่าง:

ป้อนคำอธิบายภาพที่นี่

ทำความสะอาดโปรเจ็กต์ (อาจเป็นทางเลือก) จากนั้นเรียกใช้ไฟล์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 และ maven 3.6
Karn_way

ขอให้เรายังคงอภิปรายนี้ในการแชท
Amessihel

6

ฉันขอโทษฉันไม่รู้ว่าทำไมคุณถึงได้รับข้อความแสดงข้อผิดพลาด อย่างไรก็ตามฉันใช้ Java 7 และ Windows 10 และวิธีแก้ปัญหาสำหรับฉันคือใช้ Java 8 ชั่วคราวโดยเปลี่ยนJAVA_HOMEตัวแปรสภาพแวดล้อม จากนั้นฉันสามารถเรียกใช้mvn installและดึงข้อมูลจาก Maven Central Repository


2
สิ่งนี้เป็นสิ่งมหัศจรรย์สำหรับฉัน ในฐานะผู้ใช้ MyEclipse สิ่งที่ฉันต้องทำคือเปลี่ยน JRE สำหรับการกำหนดค่าการรัน maven เป็น 1.8 แล้วกลับมาเป็น 1.7 อีกครั้งหลังจากที่ maven ดาวน์โหลดสิ่งที่ต้องการแล้ว
Thor Hovden



0

สำหรับการตั้งค่าคุณสมบัติ java บนเซิร์ฟเวอร์แอป Windows:

  • กำหนดค่า tomcat> เรียกใช้ในฐานะผู้ดูแลระบบ
  • จากนั้นเพิ่มตัวเลือก Java:

  • เริ่มบริการใหม่


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

& -Djdk.tls.client.protocols = TLSv1, TLSv1.1, TLSv1.2
Don Julio
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.