Tại sao tôi nhận được Cảnh báo nhận được thông báo nghiêm trọng: Protocol_version, hoặc ngang hàng không được xác thực bởi Maven Central?


132

Tôi đang gặp các lỗi dưới đây khi kết nối với Maven Central / https://repo1.maven.org sau ngày 18 tháng 6 năm 2018.

Received fatal alert: protocol_version

hoặc là

Received fatal alert: peer not authenticated

2
Thử nghiệm ấn tượng bạn đã làm ở đó cho tương lai.
Thor Hovden

Câu trả lời:


188

Giải pháp 1: cấu hình Java 7

Cần phải kích hoạt giao thức TLS 1.2 với thuộc tính Java trong dòng lệnh

mvn -Dhttps.protocols=TLSv1.2 install

install chỉ là một ví dụ về một mục tiêu

antBằng cách này, lỗi tương tự có thể được giải quyết

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

Giải pháp 2: sử dụng Java 7 với Hỗ trợ nâng cao của Oracle

Ngoài ra vấn đề có thể được giải quyết bằng cách cập nhật phiên bản Java 7. Nhưng phiên bản có sẵn cuối cùng ( 7u80) không khắc phục được sự cố. Cần sử dụng bản cập nhật được cung cấp với Hỗ trợ nâng cao của Oracle (trước đây gọi là Java dành cho doanh nghiệp).

Giải pháp 3: sử dụng Java 8 thay thế

Định cấu hình $JAVA_HOMEđể trỏ đến Java 8.


Bạn đã lưu một ngày ở đây!
Herve Mutombo

Bạn có thể cho tôi biết những gì tương đương trong SBT tôi đã thử sbt -Dhttps.protocols=TLSv1.2 instalnhưng nó không hoạt động
G.Saleh

@ G.Saleh Bạn cần cách để truyền tham số này cho java -Dhttps.protocols=TLSv1.2. Vì vậy, bạn cần tìm cách vượt qua các tham số java trong SBT.
v.ladynev

67

Vào tháng 6 năm 2018, trong nỗ lực nâng cao bảo mật và tuân thủ các tiêu chuẩn hiện đại, các giao thức TLS 1.0 & 1.1 không an toàn sẽ không còn được hỗ trợ cho các kết nối SSL đến Trung tâm. Điều này chỉ ảnh hưởng đến người dùng Java 6 (và Java 7) cũng đang sử dụng https để truy cập trung tâm, theo số liệu của chúng tôi ít hơn .2% người dùng.

Để biết thêm chi tiết và cách giải quyết, hãy xem blog và faq tại đây: https://blog.sonatype.com/enhANCE-ssl-security-and-http/2-support-for-central


Liên kết trong bài viết blog.sonatype.com đang ném 404. Đó là vì họ đã cập nhật liên kết đến Central.sonatype.org/articles/2018/May/04/ .
Blueboye

50

Lệnh sau đã giúp tôi (thực hiện trên bash trước khi chạy mvn)

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

3
Trên Windows, đặt MAVEN_OPTS = -Dhttps.prot Protocol = TLSv1, TLSv1.1, TLSv1.2
Lele

sau khi cài đặt, tất cả http tải xuống đều hoạt động với tôi. tuy nhiên https có vấn đề như bên dưới Không thể thu thập các phụ thuộc tại org.netpreserve.commons: webarchive-commons: jar: 1.1.2 -> org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Không thể đọc được tạo phẩm mô tả cho org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Không thể chuyển artifact org.apache.hadoop: hadoop-core: pom: 0.20.2-cdh3u4 từ / sang cloudera ( repository.cloudera. com / artifactory / cloudera-repos ): Đã nhận được cảnh báo nghiêm trọng: handshake_failure bất kỳ trợ giúp nào
Karn_way

1
Hoạt động như một lá bùa! Cảm ơn! (Đã thử trên
CentOs

Điều này có an toàn không?
Ganesh Satpute

Cảm ơn bạn! Điều này có nó sẽ cho tôi!
Ben gọi

17

Như đã nói @ v.ladynev, nó hoạt động với JDK 1.7

Với Eclipse, để có thể thực hiện "Chạy dưới dạng" maven installvới tham số dòng lệnh TLS, chỉ cần cấu hình JDK bạn đang sử dụng.

Mở hộp thoại qua Window > Preferences > Java > JREs đã cài đặt .

Sau đó, đánh dấu cái bạn đang sử dụng (nên là JDK , không phải JRE ), nhấp vào Chỉnh sửa . Trong trường "Đối số VM mặc định", điền giá trị -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2. Như hình dưới đây:

nhập mô tả hình ảnh ở đây

Làm sạch dự án (có thể tùy chọn), sau đó chạy lại a maven install.


Tôi nhận được điều này Không thể thu thập các phụ thuộc tại org.netpreserve.commons: webarchive-commons: jar: 1.1.2 -> org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Không thể đọc mô tả nhân tạo cho org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Không thể chuyển artifact org.apache.hadoop: hadoop-core: pom: 0.20.2-cdh3u4 từ / sang cloudera ( repository.cloudera.com/ artifactory / cloudera-repos ): Đã nhận được cảnh báo nghiêm trọng: handshake_failure có vẻ như https tải xuống có vấn đề. vui lòng giúp tôi đang sử dụng java1.7_80 và maven 3.6
Karn_way


6

Tôi xin lỗi, tôi không biết tại sao bạn nhận được thông báo lỗi. Tuy nhiên, tôi đang sử dụng Java 7 và Windows 10 và giải pháp cho tôi là tạm thời sử dụng Java 8 bằng cách thay đổi JAVA_HOMEbiến môi trường. Sau đó, tôi có thể chạy mvn installvà tìm nạp từ Kho lưu trữ trung tâm Maven.


2
Điều này làm việc kỳ diệu cho tôi. Là người dùng MyEclipse, tất cả những gì tôi phải làm là thay đổi JRE cho cấu hình chạy maven thành 1.8 và sau đó quay lại 1.7 sau khi maven đã tải xuống những gì nó cần.
Thor Hovden



0

Để đặt thuộc tính java trên máy chủ ứng dụng Windows:

  • cấu hình tomcat> chạy với tư cách quản trị viên
  • sau đó thêm các thao tác Java:

  • Khởi động lại dịch vụ.


-Dhttps.prot Protocol = TLSv1, TLSv1.1, TLSv1.2
Don Julio

& -Djdk.tls.client.prot Protocol = TLSv1, TLSv1.1, TLSv1.2
Don Julio
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.