ssl_error_rx_record_too_long dan Apache SSL [ditutup]

242

Saya punya pelanggan yang mencoba mengakses salah satu situs saya, dan mereka terus mendapatkan kesalahan ini> ssl_error_rx_record_too_long

Mereka mendapatkan kesalahan ini di semua browser, semua platform. Saya tidak bisa mereproduksi masalah sama sekali.

Server saya dan saya sendiri berlokasi di AS, pelanggannya berlokasi di India.

Saya mencari di Google masalah, dan sumber utama tampaknya bahwa port SSL berbicara dalam HTTP. Saya memeriksa server saya, dan ini tidak terjadi. Saya mencoba solusi yang disebutkan di sini , tetapi pelanggan telah menyatakan itu tidak memperbaiki masalah.

Adakah yang bisa memberitahu saya bagaimana saya bisa memperbaikinya, atau bagaimana saya bisa mereproduksi ini ???

SOLUSINYA

Ternyata pelanggan memiliki proxy lokal yang salah konfigurasi!

Semoga itu bisa membantu siapa saja yang menemukan pertanyaan ini mencoba men-debugnya di masa mendatang.

Subimage
sumber
Saya pikir itu bisa juga disebabkan oleh proxy yang salah konfigurasi di sisi mereka. Adakah pemikiran tentang itu juga?
Subimage
34
Karena ditutup sebagai off topic tetapi tampaknya menjadi pertanyaan yang sangat berharga (peringkat sangat tinggi di Google untuk pesan kesalahan ini) mungkin harus dipindahkan ke ServerFault? Ini adalah pertanyaan berumur 6 tahun jadi mungkin SF tidak tersedia ketika pertanyaan awalnya diajukan ...
kdmurray
13
Ini adalah hasil pencarian web pertama untuk SSL_ERROR_RX_RECORD_TOO_LONG. Ini memiliki 32 favorit, 193 upvotes, beberapa jawaban banyak-dipilih ... dan itu ditutup sebagai topik menurut orang yang tahu lebih baik daripada kita semua bahwa pertanyaan ini tidak memiliki hak untuk ada.
Vladimir Kornea
2
Saya dapat men-debug masalah sertifikat saya yang menghasilkan pesan ini denganopenssl s_client -connect my-domain.tld:443
azmeuk
2
@Subimage "SOLUSI Ternyata pelanggan memiliki proxy lokal yang salah konfigurasi!" Tolong jelaskan apa artinya ini. Anda bisa lebih spesifik; itu frustasi untuk mengetahui Anda memiliki solusi tetapi Anda tidak secara eksplisit mengejanya
ptrcao

Jawaban:

169

The link yang disebutkan oleh subimage benar pada uang untuk saya. Disarankan untuk mengubah tag host virtual, yaitu, dari <VirtualHost myserver.example.com:443>menjadi<VirtualHost _default_:443>

Kode kesalahan: ssl_error_rx_record_too_long

Ini biasanya berarti implementasi SSL di server Anda tidak benar. Kesalahan biasanya disebabkan oleh masalah sisi server yang perlu diselidiki oleh administrator server.

Berikut beberapa hal yang kami sarankan untuk dicoba.

  • Pastikan port 443 terbuka dan diaktifkan di server Anda. Ini adalah port standar untuk komunikasi https.

  • Jika SSL menggunakan port non-standar maka FireFox 3 terkadang dapat memberikan kesalahan ini. Pastikan SSL berjalan pada port 443.

  • Jika menggunakan Apache2 periksa bahwa Anda menggunakan port 443 untuk SSL. Ini dapat dilakukan dengan mengatur file ports.conf sebagai berikut

    Listen 80
    Listen 443 https
    
  • Pastikan Anda tidak memiliki lebih dari satu sertifikat SSL yang berbagi IP yang sama. Harap pastikan bahwa semua sertifikat SSL menggunakan IP khusus mereka sendiri.

  • Jika menggunakan Apache2 periksa konfigurasi vhost Anda. Beberapa pengguna telah melaporkan perubahan <VirtualHost>untuk _default_menyelesaikan kesalahan.

Itu memperbaiki masalah saya. Jarang saya mengirim pesan kesalahan dan mendapatkan jawaban pertama dengan jawaban yang benar! :-)

Selain hal di atas , ini adalah beberapa solusi lain yang ditemukan orang lain yang menyebabkan masalah:

  • Pastikan sertifikat SSL Anda tidak kedaluwarsa

  • Coba tentukan Cipher:

    SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM:+SSLv3

Randall
sumber
5
Hanya untuk menambah daftar hal-hal yang perlu diperiksa, setelah memeriksa semua item ini saya harus menukar <VirtualHost default : 443> ke <VirtualHost fqdn: 443> untuk mendapatkannya agar akhirnya berfungsi.
JimP
2
Saya memiliki masalah ini di server whm / Cpanel. Saya baru saja menginstal ulang ssl untuk memperbaiki masalah ini.
Mike D
15
_default_:443bekerja untukku. Tidak, aku bisa tidur!
Garfonzo
Hal lain yang perlu diperiksa, Anda mungkin memiliki SSL secara default, tetapi jika Anda memiliki virthost baru dengan masalah ini, Anda mungkin belum memberikan konfigurasi SSL meskipun port terbuka. (alias, oops, saya ketinggalan satu langkah.)
Josiah
1
Juga, periksa dan pastikan Anda tidak memiliki file conf VirtualHost lain yang mendengarkan port 443 dengan pengaturan yang tidak tepat. Satu file conf buruk dapat menurunkan semua situs SSL.
Nostalg.io
120

Solusi bagi saya adalah yang default-ssltidak diaktifkan di apache 2 .... hanya menempatkanSSLEngine On

Saya harus mengeksekusi a2ensite default-ssldan semuanya bekerja.

Webnet
sumber
4
Saya telah menggunakan a2enmod ssltetapi lupa untuk a2ensite default-ssldari vhost conf default. Terima kasih!
m3nda
Mereka seharusnya benar-benar default-sslsudah diaktifkan di Ubuntu.
BadHorsie
32

Dalam kasus saya, saya harus mengubah <VirtualHost *> kembali ke <VirtualHost *: 80> (yang merupakan default pada Ubuntu). Jika tidak, port 443 tidak menggunakan SSL dan mengirim HTML polos kembali ke browser.

Anda dapat memeriksa apakah ini kasus Anda dengan mudah: cukup sambungkan ke server Anda http://www.example.com:443 . Jika Anda melihat HTML biasa, Apache Anda sama sekali tidak menggunakan SSL pada port 443, kemungkinan besar karena kesalahan konfigurasi VirtualHost.

Bersulang!

alexm
sumber
1
localhost: 443 banyak plian html, apa yang harus dilakukan?
niran
@niran Saya kira itu tergantung pada default OS Anda untuk <VirtualHost>arahan. Cobalah untuk mencari tahu defaultnya dan sesuaikan sesuai itu dan pastikan SSL diaktifkan pada VirtualHost itu.
alexm
1
Punya masalah dengan vhost karena 000-default.conf memiliki bagian 443 yang tidak digunakan tanpa SSLEngine. Log Apache menunjukkan ini, yang membuat saya di jalur yang benar:AH01916: Init: (myhost.example.com:443) You configured HTTP(80) on the standard HTTPS(443) port!
mivk
Masalah saya adalah saya belum menjalankan "sudo a2ensite default-ssl.conf". Konfigurasi ssl sama sekali tidak ada di direktori yang diaktifkan situs, hanya di situs yang tersedia.
Json
10

Jika Anda memiliki kesalahan setelah menyiapkan vhost https baru dan konfigurasi tampaknya benar, ingat untuk menautkan sites-enabledjuga.

tukang pengeboran
sumber
2
Kedengarannya bodoh tapi itu membuat saya
kaget
2
gunakan a2ensite daripada tautan, ini adalah cara yang tepat pada kebanyakan sistem
AsTeR
1
Juga, periksa aturan di apache2.conf (Ubuntu): IncludeOptional sites-enabled / *. Conf. Pastikan tautan Anda diakhiri dengan ".conf" atau ubah aturan itu untuk memasukkan semua file.
lepe
1
saya membuat konfigurasi situs dengan sintaks yang benar dan menautkannya ke situs yang tersedia. Masalahnya adalah: nama konfigurasi saya tidak diakhiri dengan ".conf", karena itu tidak pernah dimuat dan saya mendapat kesalahan di atas. Konfigurasi dalam kasus saya dimuat dengan direktif "IncludeOptional sites-enabled / *. Conf" oleh karena itu config juga harus diberi nama <Wh whatever> .conf. Sepele, tetapi tidak menyebabkan kesalahan sintaks (tidak pernah dimuat setelah semua), dan menjengkelkan karena ls menunjukkannya di situs-tersedia ...
roland.minner
7

Pertanyaan lama, tetapi hasil pertama di Google untuk saya, jadi inilah yang harus saya lakukan.

Ubuntu 12,04 Desktop dengan Apache diinstal

Semua konfigurasi dan mod_ssl diinstal ketika saya menginstal Apache, tetapi itu belum terhubung di tempat yang tepat. Catatan: semua jalur di bawah ini relatif ke / etc / apache2 /

mod_ssldisimpan di ./mods-available, dan konfigurasi situs SSL di ./sites-available, Anda hanya perlu menautkan ini ke tempat yang benar di ./mods-enableddan./sites-enabled

cd /etc/apache2
cd ./mods-enabled
sudo ln -s ../mods-available/ssl.* ./
cd ../sites-enabled
sudo ln -s ../sites-available/default-ssl ./

Restart Apache dan itu akan berhasil. Saya mencoba mengakses https: // localhost , jadi hasil Anda mungkin berbeda untuk akses eksternal, tetapi ini berhasil bagi saya.

Tarka
sumber
9
Perintah 'a2ensite default-ssl' dan 'a2enmodule ssl' menyederhanakan pengelolaan modul dan situs symlinks.
Yosia
4

Tanyakan kepada pengguna untuk URL yang tepat yang mereka gunakan di browser mereka. Jika mereka memasukkan https://your.site:80 , mereka mungkin menerima kesalahan ssl_error_rx_record_too_long.

dan-manges
sumber
Saya melihat tangkapan layar dan bukan: 80 Cobalah sendiri: monkeyfood.cashboardapp.com
Subimage
4

Dalam kasus saya, saya memiliki alamat IP yang salah dalam file host virtual. Dengarkan 443, dan baitnya <VirtualHost 192.168.0.1:443>tetapi server tidak memiliki alamat 192.168.0.1!

fimbulvetr
sumber
Saya dapat mengonfirmasi, bahwa ini juga masalah bagi saya ... alamat IP salah
StanleyD
3

Silakan lihat tautan ini .

Saya mencari di semua file log apache saya sampai saya menemukan kesalahan yang sebenarnya (saya telah mengubah <VirtualHost>dari _default_ke saya fqdn). Ketika saya memperbaiki kesalahan ini, semuanya bekerja dengan baik.

rogovsky
sumber
2

Dalam kasus saya masalahnya adalah bahwa https tidak dapat memulai dengan benar karena Listen 443 berasal dari "IfDefine SSL", tetapi apache saya tidak memulai dengan opsi -DSSL. Cara mengatasinya adalah mengubah skrip apachectl saya di:

$HTTPD -k $ARGV

untuk:

$HTTPD -k $ARGV -DSSL

Semoga itu bisa membantu seseorang.

Jeff Atwood
sumber
1

Masalah saya adalah karena MTU RENDAH melalui koneksi VPN.

netsh interface ipv4 show inter

Idx  Met   MTU   State        Name
---  ---  -----  -----------  -------------------
  1 4275 4294967295  connected    Loopback Pseudo-Interface 1
 10 4250   **1300**  connected    Wireless Network Connection
 31   25   1400  connected    Remote Access to XYZ Network

Perbaiki: antarmuka netsh mengatur antarmuka ipv4 "Koneksi Jaringan Nirkabel" mtu = 1400

Ini mungkin masalah pada koneksi non-VPN juga ...


sumber
1

Saya memiliki konfigurasi host virtual yang kacau. Ingat Anda memerlukan satu host virtual tanpa SSL untuk port 80, dan satu lagi dengan SSL untuk port 443. Anda tidak dapat memiliki keduanya di satu host virtual, seperti yang coba dilakukan oleh konfigurasi yang dihasilkan webmin.


sumber
0

Saya memiliki masalah yang sama di beberapa browser untuk mengakses situs SSL saya. Saya telah menemukan bahwa saya harus memberikan kepada FireFox proxy yang tepat (FireFox mengakses langsung ke internet).

Bergantung pada konfigurasi lan (Tunneling, filtering, redirection proxy), mode "akses langsung ke internet" untuk FireFox melempar kesalahan ini.

Pierre-Gilles Levallois
sumber
Beberapa proksi mengembalikan respons kesalahan HTTP ke permintaan HTTPS yang tidak diharapkan (misalnya jika Anda melewati proxy yang salah, atau proxy tersebut salah konfigurasi). Ini bisa sangat sulit untuk didiagnosis karena browser hanya akan menolak seluruh percakapan dan memunculkan kesalahan, daripada menunjukkan kepada Anda pesan kesalahan proxy. Wireshark melakukan pekerjaannya. Hanya berlari ke ini sendiri.
Lightness Races in Orbit
0

Anda mungkin juga mencoba memperbaiki file host.

Simpan file vhost dengan domain yang sepenuhnya memenuhi syarat dan tambahkan nama host di file hosts / etc / hosts (debian)

ip.ip.ip.ip name name.domain.com

Setelah memulai ulang apache2, kesalahannya harus hilang.

gaspard
sumber
0

Bagi saya solusinya adalah bahwa ddclient saya tidak cronning dengan benar ...

Segera
sumber