Saya memiliki paket yang memenuhi java untuk berbicara dengan server https di internet. Menjalankan kompilasi memberikan pengecualian berikut:
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)
Saya pikir ini karena koneksi yang dibuat dengan mesin klien tidak aman. Apakah ada cara untuk mengkonfigurasi mesin atau port lokal agar dapat terhubung ke server https jarak jauh?
HttpURLConnection
akan secara otomatis melakukannya untuk Anda, jika Anda tidak menentukan port sama sekali.Anda harus memiliki nama domain SMTP lokal yang akan menghubungi server email dan membuat koneksi baru juga Anda harus mengubah properti SSL dalam pemrograman Anda di bawah ini
sumber
Saya mendapat pesan kesalahan yang sama ketika saya lupa masuk ke firewall perusahaan, sebelum melakukan permintaan POST melalui proxy.
sumber
Saya mendapat kesalahan yang sama. itu karena saya mengakses port https menggunakan http .. Masalahnya terpecahkan ketika saya mengubah http ke https.
sumber
Saya menghadapi masalah yang sama dari aplikasi Java yang dibangun di Jdevelopr 11.1.1.7 IDE. Saya memecahkan masalah dengan menghapus centang penggunaan bentuk proksi properti Proyek.
Anda dapat menemukannya di berikut ini: Properti Proyek -> (dari panel kiri) Jalankan / Debug / Profil -> Klik (edit) dari panel kanan -> Pengaturan Perangkat dari panel kiri -> hapus centang opsi (Gunakan Proksi).
sumber
Menambahkan ini sebagai jawaban karena dapat membantu seseorang nantinya.
Saya harus memaksa jvm untuk menggunakan tumpukan IPv4 untuk menyelesaikan kesalahan. Aplikasi saya dulu bekerja di dalam jaringan perusahaan, tetapi saat terhubung dari rumah itu memberikan pengecualian yang sama. Tidak ada proxy yang terlibat. Menambahkan argumen jvm
-Djava.net.preferIPv4Stack=true
dan semuahttps
permintaan berperilaku normal.sumber
Jika Anda menjalankan lokal menggunakan pegas saya sarankan menggunakan:
Ini bekerja untuk saya menggunakan unit test.
Semoga ini bisa membantu!
sumber
Ini bekerja untuk saya sekarang, saya telah mengubah pengaturan akun google saya seperti di bawah ini:
Meskipun saya telah mengaktifkan SSL dan TSL saat menjalankan program di tautan yang sama. Saya menghabiskan banyak waktu tetapi saya tidak menyadarinya dan menemukan tautan ini. Dan dilakukan 2 langkah berikut dan pengaturan kontrol di google. :
Nonaktifkan verifikasi 2 langkah (kata sandi dan OTP)
Mengaktifkan untuk memungkinkan mengakses aplikasi yang kurang aman ( Izinkan aplikasi yang kurang aman: ON. )
Sekarang saya dapat mengirim email menggunakan program di atas.
sumber
Seperti yang dikatakan EJP, itu adalah pesan yang ditampilkan karena panggilan ke protokol non-https. Jika Anda yakin itu adalah HTTPS, periksa pengaturan proxy bypass Anda, dan jika-kalau tambahkan url host layanan web Anda ke daftar proxy bypass
sumber
jika koneksi adalah tes FTPS:
FTPSClient ftpClient = FTPSClient baru (protokol, false);
protokol = TLS, SSL dan false = isImplicit.
sumber
Saya menghadapi pengecualian ini saat menggunakan Gmail.
Untuk menggunakan Gmail saya harus mengaktifkan "Izinkan aplikasi yang kurang aman" .
Pengaturan Gmail ini dapat ditemukan di https://www.google.com/settings/security/lesssecureapps setelah masuk akun gmail.
sumber
DI SINI JAWABAN SANGAT PENTING:
Anda cukup mengubah String URL API (dalam metode Anda) dari https ke http .. Ini juga bisa menjadi penyebab:
dari pada
sumber
Saya mendapat masalah yang sama dan diselesaikan dengan menetapkan "proxyUser" dan "proxyPassword" di properti sistem.
bersama dengan "proxyHost" dan "proxyPort"
Semoga ini berhasil.
sumber
saya memecahkan masalah saya menggunakan port 25 dan Prop berikut
sumber
Jika Anda menjalankan
coba hentikan layanannya.
Tidak yakin mengapa saya mendapat suara turun untuk jawaban ini. Dalam jaringan perusahaan kami, ini ADALAH solusi untuk masalah ini.
sumber
Saya mengalami kesalahan serupa menggunakan komponen camel-mail untuk mengirim email melalui gmail smtp.
Solusinya berubah dari port TLS (587) ke port SSL (465) seperti di bawah ini:
sumber
Jika Anda menjalankan proses Java dari baris perintah di Java 6 atau sebelumnya, menambahkan sakelar ini memecahkan masalah di atas untuk saya:
-Dhttps.protocols = "TLSv1"
sumber
Mungkin cerficate default Anda telah kedaluwarsa. untuk memperbaruinya melalui konsol admin, buka "Keamanan> Sertifikat SSL dan manajemen kunci> Penyimpanan dan sertifikat utama> NodeDefaultKeyStore> Sertifikat pribadi" pilih alias "default" dan klik "perbarui" setelah kemudian restart WS.
sumber
Alasan lain adalah mungkin "akses ditolak", mungkin Anda tidak dapat mengakses ke URI dan menerima halaman tanggapan pemblokiran untuk akses jaringan internal. Jika Anda tidak yakin zona aplikasi Anda memerlukan aturan firewall, coba terhubung dari terminal, baris perintah. Untuk GNU / Linux atau Unix, Anda dapat mencoba menjalankan seperti perintah ini dan melihat hasilnya berasal dari aturan pemblokiran atau alamat yang sangat jauh:
echo | nc -v yazilimcity.net 443
sumber