Mengapa saya mendapatkan "Menerima peringatan fatal: protocol_version" atau "rekan tidak diautentikasi" dari Maven Central?

132

Saya mendapatkan kesalahan di bawah ini ketika terhubung ke Maven Central / https://repo1.maven.org setelah 18 Juni 2018.

Received fatal alert: protocol_version

atau

Received fatal alert: peer not authenticated
Brian Fox
sumber
2
Tes mengesankan yang Anda lakukan di sana untuk masa depan.
Thor Hovden

Jawaban:

188

Solusi 1: konfigurasikan Java 7

Diperlukan untuk mengaktifkan protokol TLS 1.2 dengan properti Java di baris perintah

mvn -Dhttps.protocols=TLSv1.2 install

install hanyalah contoh dari tujuan

Kesalahan yang sama untuk antdapat diselesaikan dengan cara ini

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

Solusi 2: gunakan Java 7 dengan Dukungan Tingkat Lanjut Oracle

Juga masalah dapat diselesaikan dengan memperbarui versi Java 7. Tetapi versi terakhir yang tersedia ( 7u80) tidak memperbaiki masalah. Perlu menggunakan pembaruan yang disediakan dengan Dukungan Tingkat Lanjut Oracle (sebelumnya dikenal sebagai Java for Business).

Solusi 3: gunakan Java 8 sebagai gantinya

Konfigurasi $JAVA_HOMEuntuk mengarahkan ke Java 8.

v.ladynev
sumber
Anda menyimpan sehari di sini!
Herve Mutombo
Dapatkah Anda memberi tahu saya apa yang setara dengan SBT yang saya coba sbt -Dhttps.protocols=TLSv1.2 instaltetapi tidak berhasil
G.Saleh
@ G.Saleh Anda perlu cara untuk mengirimkan parameter ini ke java -Dhttps.protocols=TLSv1.2. Jadi, Anda perlu menemukan cara untuk melewati parameter java di SBT.
v.ladynev
67

Pada Juni 2018, dalam upaya meningkatkan keamanan dan mematuhi standar modern, protokol TLS 1.0 & 1.1 yang tidak aman tidak lagi didukung untuk koneksi SSL ke Central. Ini seharusnya hanya memengaruhi pengguna Java 6 (dan Java 7) yang juga menggunakan https untuk mengakses pusat, yang menurut metrik kami kurang dari 0,2% pengguna.

Untuk detail dan solusi lebih lanjut, lihat blog dan faq di sini: https://blog.sonatype.com/enhancing-ssl-security-and-http/2-support-for-central

Brian Fox
sumber
Tautan di artikel blog.sonatype.com membuang 404. Itu karena mereka memperbarui tautan ke central.sonatype.org/articles/2018/May/04/… .
Blueboye
50

Perintah berikut membantu saya (mengeksekusi di bash sebelum menjalankan mvn)

export MAVEN_OPTS=-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
Simon_Prewo_Frankfurt
sumber
3
Pada Windows atur MAVEN_OPTS = -Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2
Lele
setelah mengatur ini semua unduhan http bekerja untuk saya. namun https memiliki masalah seperti di bawah ini Gagal mengumpulkan dependensi di org.netpreserve.commons: webarchive-commons: jar: 1.1.2 -> org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Gagal membaca artefak keterangan untuk org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Tidak dapat mentransfer artifact org.apache.hadoop: hadoop-core: pom: 0.20.2-cdh3u4 dari / ke cloudera ( repository.cloudera. com / artifactory / cloudera-repos ): Menerima peringatan fatal: handshake_failure any help
Karn_way
1
Bekerja seperti pesona! Terima kasih! (Mencoba di CentOs)
DarSta
Apakah ini aman?
Ganesh Satpute
Terima kasih! Ini membuatnya untuk saya!
Ben Call
17

Seperti yang dikatakan @ v.ladynev, ini bekerja dengan JDK 1.7

Dengan Eclipse, untuk dapat melakukan "Run As" maven installdengan parameter baris perintah TLS, cukup konfigurasikan JDK yang Anda gunakan.

Buka dialog melalui Window > Preferences > Java > Install JREs .

Kemudian sorot yang Anda gunakan (harus menjadi JDK , bukan JRE ), klik Edit . Di bidang "Argumen VM default", isi nilainya -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2. Seperti yang ditunjukkan di bawah ini:

masukkan deskripsi gambar di sini

Bersihkan proyek (mungkin opsional), lalu jalankan kembali a maven install.

Amessihel
sumber
Saya mendapatkan ini Gagal mengumpulkan dependensi di org.netpreserve.commons: webarchive-commons: jar: 1.1.2 -> org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Gagal membaca keterangan artefak untuk org.apache.hadoop: hadoop-core: jar: 0.20.2-cdh3u4: Tidak dapat mentransfer artifact org.apache.hadoop: hadoop-core: pom: 0.20.2-cdh3u4 dari / ke cloudera ( repository.cloudera.com/ artifactory / cloudera-repos ): Menerima peringatan fatal: handshake_failure looks https unduhan bermasalah. tolong bantu saya menggunakan java1.7_80 dan maven 3.6
Karn_way
Mari kita lanjutkan diskusi ini dalam obrolan .
Amessihel
6

Maaf, saya tidak tahu mengapa Anda mendapatkan pesan kesalahan. Namun, saya menggunakan Java 7 dan Windows 10 dan solusi bagi saya adalah untuk sementara menggunakan Java 8 dengan mengubah JAVA_HOMEvariabel lingkungan. Lalu saya bisa berlari mvn installdan mengambil dari Maven Central Repository.

keramahan
sumber
2
Ini berhasil bagi saya. Sebagai pengguna MyEclipse, yang harus saya lakukan adalah mengubah JRE untuk konfigurasi maven run menjadi 1.8 dan kemudian kembali lagi ke 1.7 setelah maven mengunduh apa yang diperlukan.
Thor Hovden
0

Untuk mengatur properti java di server aplikasi Windows:

  • konfigurasikan tomcat> run as admin
  • lalu tambahkan Java opts:

  • restart layanan.

Don Julio
sumber
-Dhttps.protocols = TLSv1, TLSv1.1, TLSv1.2
Don Julio
& -Djdk.tls.client.protocols = TLSv1, TLSv1.1, TLSv1.2
Don Julio