ssl_error_rx_record_too_long e Apache SSL [chiuso]


242

Ho un cliente che tenta di accedere a uno dei miei siti e continuano a ricevere questo errore> ssl_error_rx_record_too_long

Stanno ricevendo questo errore su tutti i browser, tutte le piattaforme. Non riesco a riprodurre il problema.

Io e il mio server siamo negli Stati Uniti, il cliente si trova in India.

Ho cercato su Google il problema e la fonte principale sembra essere che la porta SSL sta parlando in HTTP. Ho controllato il mio server e questo non sta succedendo. Ho provato la soluzione menzionata qui , ma il cliente ha dichiarato di non aver risolto il problema.

Qualcuno può dirmi come posso risolvere questo problema o come posso riprodurlo ???

LA SOLUZIONE

Si scopre che il cliente aveva un proxy locale non configurato correttamente!

Spero che possa aiutare chiunque a trovare questa domanda cercando di eseguire il debug in futuro.


Sto pensando che potrebbe anche essere causato da un proxy configurato male al loro fianco. Qualche idea anche su questo?
Subimage

34
Dal momento che è stato chiuso come off topic ma sembra essere una domanda molto preziosa (è molto alto in Google per questo messaggio di errore) forse dovrebbe essere spostato su ServerFault? È una domanda di 6 anni, quindi forse SF non era disponibile quando la domanda fu posta inizialmente ...
kdmurray

13
Questo è il primo risultato di ricerca Web per SSL_ERROR_RX_RECORD_TOO_LONG. Ha 32 preferiti, 193 voti positivi, più risposte molto votate ... ed è chiuso come fuori tema secondo una persona che conosce meglio di tutti noi che questa domanda non ha il diritto di esistere.
Vladimir Kornea,

2
Potrei eseguire il debug dei miei problemi di certificato generando questo messaggio conopenssl s_client -connect my-domain.tld:443
azmeuk

2
@Subimage "LA SOLUZIONE Si è scoperto che il cliente aveva un proxy locale non configurato correttamente!" Per favore, spiega cosa significa. Potresti essere più specifico; è frustrante sapere che hai la soluzione ma non la
scrivi

Risposte:


169

Il link menzionato da Subimage era giusto per me. Ha suggerito di cambiare il tag host virtuale, ovvero da <VirtualHost myserver.example.com:443>a<VirtualHost _default_:443>

Codice di errore: ssl_error_rx_record_too_long

Questo di solito significa che l'implementazione di SSL sul tuo server non è corretta. L'errore è in genere causato da un problema sul lato server che l'amministratore del server dovrà esaminare.

Di seguito sono riportate alcune cose che consigliamo di provare.

  • Assicurarsi che la porta 443 sia aperta e abilitata sul server. Questa è la porta standard per le comunicazioni https.

  • Se SSL utilizza una porta non standard, a volte FireFox 3 può dare questo errore. Assicurarsi che SSL sia in esecuzione sulla porta 443.

  • Se si utilizza Apache2, verificare di utilizzare la porta 443 per SSL. Questo può essere fatto impostando il file ports.conf come segue

    Listen 80
    Listen 443 https
    
  • Assicurati di non avere più di un certificato SSL che condivida lo stesso IP. Assicurati che tutti i certificati SSL utilizzino il proprio IP dedicato.

  • Se usi Apache2 controlla la configurazione del tuo vhost. Alcuni utenti hanno segnalato la modifica <VirtualHost>per _default_risolvere l'errore.

Ciò ha risolto il mio problema. È raro che google un messaggio di errore e ottenga il primo successo con la risposta giusta! :-)

Oltre a quanto sopra , queste sono alcune altre soluzioni che altri hanno riscontrato causando il problema:

  • Assicurarsi che il certificato SSL non sia scaduto

  • Prova a specificare la cifra:

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


5
Solo per aggiungere all'elenco delle cose da controllare, dopo aver controllato tutti questi elementi ho dovuto scambiare il mio <VirtualHost default : 443> con <VirtualHost fqdn: 443> per farlo funzionare finalmente.
JimP,

2
Ho avuto questo problema su un server whm / Cpanel. Ho appena reinstallato l'SSL per risolvere il problema.
Mike D,

15
_default_:443ha funzionato per me. No, posso andare a dormire!
Garfonzo,

Un'altra cosa da verificare, potresti avere SSL come impostazione predefinita, ma se hai un nuovo problema con questo problema, potresti non aver ancora fornito la configurazione SSL anche se la porta è aperta. (aka, oops, ho perso un passo.)
Giosia

1
Inoltre, controlla e assicurati di non avere altri file conf di VirtualHost che ascoltano la porta 443 con impostazioni errate. Un file di configurazione errato può arrestare tutti i siti SSL.
Nostalg.io

120

La soluzione per me era che default-sslnon era abilitato in Apache 2 .... solo mettendoSSLEngine On

Ho dovuto eseguire a2ensite default-ssle tutto ha funzionato.


4
Ho usato a2enmod sslma dimentico di a2ensite default-sslconf predefinito vhost. Grazie!
m3nda,

Dovrebbero proprio default-sslabilitarli già in Ubuntu.
BadHorsie

32

Nel mio caso ho dovuto cambiare <VirtualHost *> in <VirtualHost *: 80> (che è l'impostazione predefinita su Ubuntu). Altrimenti, la porta 443 non utilizzava SSL e restituiva HTML semplice al browser.

Puoi verificare se questo è il tuo caso abbastanza facilmente: connettiti al tuo server http://www.example.com:443 . Se vedi HTML semplice, Apache non utilizza affatto SSL sulla porta 443, molto probabilmente a causa di un'errata configurazione di VirtualHost.

Saluti!


1
localhost: 443 carica HTML plian, cosa fare?
niran,

@niran Immagino che dipenda dalle impostazioni predefinite del tuo sistema operativo per la <VirtualHost>direttiva. Prova a scoprire il valore predefinito e modificalo di conseguenza e assicurati che SSL sia abilitato su quel VirtualHost.
alexm,

1
Ha avuto questo problema con un vhost perché 000-default.conf aveva una sezione 443 inutilizzata senza SSLEngine. Il log di Apache lo mostrava, il che mi ha portato sulla strada giusta:AH01916: Init: (myhost.example.com:443) You configured HTTP(80) on the standard HTTPS(443) port!
mivk

Il mio problema era che non avevo eseguito "sudo a2ensite default-ssl.conf". Il conf SSL non era semplicemente nella directory abilitata per i siti, ma solo nei siti disponibili.
Json,


10

Se si verifica l'errore dopo l'installazione di un nuovo vhost https e la configurazione sembra essere corretta, ricordarsi di collegare sites-enabledanche.


2
Sembra stupido ma mi ha sorpreso
Alexei Tenitski il

2
usa a2ensite piuttosto che un link, questo è il modo giusto sulla maggior parte dei sistemi
AsTeR

1
Inoltre, controlla la regola su apache2.conf (Ubuntu): IncludeOptional sites-enabled / *. Conf. Assicurati che i tuoi collegamenti finiscano in ".conf" o modifica quella regola per includere tutti i file.
lepe,

1
ho creato la configurazione del sito con la sintassi corretta e l'ho collegato ai siti disponibili. Il problema era: il nome della mia configurazione non terminava con ".conf", in quanto tale non è mai stato caricato e ho riscontrato un errore superiore. Le configurazioni nel mio caso sono state caricate con la direttiva "IncludeOptional sites-enabled / *. Conf", pertanto la configurazione deve anche essere denominata <Whatever> .conf. Triviale, ma non causa alcun errore di sintassi (mai caricato dopo tutto) e irritante perché ls lo ha mostrato nei siti disponibili ...
roland.minner

7

Vecchia domanda, ma primo risultato in Google per me, quindi ecco cosa dovevo fare.

Ubuntu 12.04 Desktop con Apache installato

Tutta la configurazione e mod_ssl sono stati installati quando ho installato Apache, ma non era ancora collegato nei punti giusti. Nota: tutti i percorsi sottostanti sono relativi a / etc / apache2 /

mod_sslè memorizzato in ./mods-availablee la configurazione del sito SSL è in ./sites-available, devi solo collegarli ai loro posti corretti in ./mods-enablede./sites-enabled

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

Riavvia Apache e dovrebbe funzionare. Stavo cercando di accedere a https: // localhost , quindi i risultati potrebbero variare per l'accesso esterno, ma questo ha funzionato per me.


9
I comandi 'a2ensite default-ssl' e 'a2enmodule ssl' semplificano la gestione dei moduli e dei collegamenti simbolici dei siti.
Giosia,


4

Nel mio caso, avevo l'indirizzo IP errato nel file host virtuale. L'ascolto era 443 e la stanza lo era <VirtualHost 192.168.0.1:443>ma il server non aveva l'indirizzo 192.168.0.1!


Posso confermare che questo è stato un problema anche per me ... indirizzo IP errato
StanleyD

3

Vedi questo link .

Ho cercato in tutti i miei file di registro di Apache fino a quando non ho trovato l'errore effettivo (avevo cambiato il <VirtualHost>da _default_al mio fqdn). Quando ho risolto questo errore, tutto ha funzionato bene.


2

Nel mio caso il problema era che https non era in grado di avviarsi correttamente perché Listen 443 era nel derective "IfDefine SSL", ma il mio apache non iniziava con l'opzione -DSSL. La correzione era cambiare il mio script apachectl in:

$HTTPD -k $ARGV

per:

$HTTPD -k $ARGV -DSSL

Spero che aiuti qualcuno.


1

Il mio problema era dovuto a un MTU BASSO su una connessione 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

Correzione: netsh interface ipv4 set interface "Wireless Network Connection" mtu = 1400

Potrebbe essere un problema su una connessione non VPN anche ...


1

Ho avuto una configurazione dell'host virtuale incasinata. Ricorda che hai bisogno di un host virtuale senza SSL per la porta 80 e un altro con SSL per la porta 443. Non puoi avere entrambi in un host virtuale, come ha provato a fare la configurazione generata da webmin.


0

Ho avuto lo stesso problema in alcuni browser per accedere al mio sito SSL. Ho scoperto che dovevo dare a fireFox il giusto proxy (FireFox stava accedendo direttamente a internet).

A seconda della configurazione LAN (tunneling, filtro, reindirizzamento proxy), la modalità "accesso diretto a Internet" per FireFox genera questo errore.


Alcuni proxy restituiscono una risposta di errore HTTP a una richiesta HTTPS non prevista (ad es. Se si è passati attraverso un proxy errato o se il proxy non è configurato correttamente). Questo può essere davvero difficile da diagnosticare perché i browser rifiuteranno l'intera conversazione e genereranno un errore, piuttosto che mostrarti il ​​messaggio di errore del proxy. Wireshark fa il lavoro però. Mi sono appena imbattuto in questo.
Lightness Races in Orbit

0

Potresti anche provare a riparare il file hosts.

Mantenere il file vhost con il dominio completo e aggiungere il nome host nel file hosts / etc / hosts (debian)

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

Dopo aver riavviato apache2, l'errore dovrebbe essere sparito.


0

Per me la soluzione era che il mio client non stava facendo il cronning correttamente ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.