ssl_error_rx_record_too_long und Apache SSL [geschlossen]

242

Ich habe einen Kunden, der versucht, auf eine meiner Websites zuzugreifen, und er erhält weiterhin den Fehler> ssl_error_rx_record_too_long

Sie erhalten diesen Fehler auf allen Browsern, allen Plattformen. Ich kann das Problem überhaupt nicht reproduzieren.

Mein Server und ich befinden uns in den USA, der Kunde in Indien.

Ich habe über das Problem gegoogelt, und die Hauptquelle scheint zu sein, dass der SSL-Port in HTTP spricht. Ich habe meinen Server überprüft, und dies geschieht nicht. Ich habe die hier erwähnte Lösung ausprobiert , aber der Kunde hat angegeben, dass das Problem nicht behoben wurde.

Kann mir jemand sagen, wie ich das beheben oder wie ich das reproduzieren kann ???

DIE LÖSUNG

Es stellte sich heraus, dass der Kunde einen falsch konfigurierten lokalen Proxy hatte!

Ich hoffe, das hilft jedem, der diese Frage findet und versucht, sie in Zukunft zu debuggen.

Teilbild
quelle
Ich denke, es könnte auch durch einen falsch konfigurierten Proxy an ihrer Seite verursacht werden. Irgendwelche Gedanken dazu?
Subimage
34
Da es als Off-Topic geschlossen wurde, aber eine sehr wertvolle Frage zu sein scheint (rangiert in Google für diese Fehlermeldung sehr hoch), sollte es vielleicht nach ServerFault verschoben werden? Es ist eine 6 Jahre alte Frage, also war SF vielleicht nicht verfügbar, als die Frage ursprünglich gestellt wurde ...
kdmurray
12
Dies ist das erste Websuchergebnis für SSL_ERROR_RX_RECORD_TOO_LONG. Es hat 32 Favoriten, 193 positive Stimmen, mehrere vielbeachtete Antworten ... und es ist laut einer Person, die besser als der Rest von uns weiß, dass diese Frage kein Existenzrecht hat, als nicht thematisch geschlossen.
Vladimir Kornea
2
Ich könnte meine Zertifikatprobleme debuggen, die diese Nachricht mitopenssl s_client -connect my-domain.tld:443
azmeuk
2
@Subimage "DIE LÖSUNG Es stellte sich heraus, dass der Kunde einen falsch konfigurierten lokalen Proxy hatte!" Bitte erläutern Sie, was dies bedeutet. Sie könnten genauer sein; Es ist frustrierend zu wissen, dass Sie die Lösung haben, aber Sie
formulieren

Antworten:

169

Der von Subimage erwähnte Link war genau das Richtige für mich. Es wurde vorgeschlagen, das virtuelle Host-Tag zu ändern, dh von <VirtualHost myserver.example.com:443>nach<VirtualHost _default_:443>

Fehlercode: ssl_error_rx_record_too_long

Dies bedeutet normalerweise, dass die Implementierung von SSL auf Ihrem Server nicht korrekt ist. Der Fehler wird normalerweise durch ein serverseitiges Problem verursacht, das der Serveradministrator untersuchen muss.

Im Folgenden finden Sie einige Dinge, die wir empfehlen.

  • Stellen Sie sicher, dass Port 443 auf Ihrem Server geöffnet und aktiviert ist. Dies ist der Standardport für die https-Kommunikation.

  • Wenn SSL einen nicht standardmäßigen Port verwendet, kann FireFox 3 diesen Fehler manchmal auslösen. Stellen Sie sicher, dass SSL auf Port 443 ausgeführt wird.

  • Wenn Sie Apache2 verwenden, überprüfen Sie, ob Sie Port 443 für SSL verwenden. Dies kann durch Festlegen der Datei ports.conf wie folgt erfolgen

    Listen 80
    Listen 443 https
    
  • Stellen Sie sicher, dass nicht mehr als ein SSL-Zertifikat dieselbe IP-Adresse hat. Bitte stellen Sie sicher, dass alle SSL-Zertifikate ihre eigene dedizierte IP verwenden.

  • Wenn Sie Apache2 verwenden, überprüfen Sie Ihre vhost-Konfiguration. Einige Benutzer haben Änderungen gemeldet <VirtualHost>, _default_um den Fehler zu beheben.

Das hat mein Problem behoben. Es ist selten, dass ich eine Fehlermeldung google und den ersten Treffer mit der richtigen Antwort erhalte! :-)

Zusätzlich zu den oben genannten sind dies einige andere Lösungen, die andere Leute gefunden haben, die das Problem verursacht haben:

  • Stellen Sie sicher, dass Ihr SSL-Zertifikat nicht abgelaufen ist

  • Versuchen Sie, die Chiffre anzugeben:

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

Randall
quelle
5
Um die Liste der zu überprüfenden Dinge zu erweitern, musste ich nach dem Überprüfen all dieser Elemente meinen <VirtualHost- Standard : 443> gegen <VirtualHost fqdn: 443> austauschen, damit er endlich funktioniert.
JimP
2
Ich hatte dieses Problem auf einem whm / Cpanel-Server. Ich habe gerade die SSL neu installiert, um das Problem zu beheben.
Mike D
15
_default_:443arbeitete für mich. Nein, ich kann schlafen gehen!
Garfonzo
Eine andere Sache, die Sie überprüfen sollten, ist, dass Sie möglicherweise standardmäßig SSL verwenden. Wenn Sie jedoch einen neuen Virthost mit diesem Problem haben, haben Sie die SSL-Konfiguration möglicherweise noch nicht bereitgestellt, obwohl der Port geöffnet ist. (aka, oops, ich habe einen Schritt verpasst.)
Josiah
1
Überprüfen Sie außerdem, ob andere VirtualHost-Konfigurationsdateien Port 443 mit falschen Einstellungen abhören. Eine fehlerhafte Conf-Datei kann alle SSL-Sites zum Absturz bringen.
Nostalg.io
120

Die Lösung für mich war, dass default-sslin Apache 2 nicht aktiviert wurde ... nur PuttenSSLEngine On

Ich musste ausführen a2ensite default-sslund alles funktionierte.

Webnet
quelle
4
Ich habe verwendet, a2enmod sslaber vergessen, a2ensite default-sslvon Standard vhost conf. Danke dir!
m3nda
Sie sollten eigentlich nur default-sslschon in Ubuntu aktiviert machen .
BadHorsie
32

In meinem Fall musste ich den <VirtualHost *> wieder in <VirtualHost *: 80> ändern (dies ist die Standardeinstellung unter Ubuntu). Andernfalls verwendete der Port 443 kein SSL und sendete einfaches HTML an den Browser zurück.

Sie können ganz einfach überprüfen, ob dies der Fall ist: Stellen Sie einfach eine Verbindung zu Ihrem Server her http://www.example.com:443 . Wenn Sie einfaches HTML sehen, verwendet Ihr Apache überhaupt kein SSL an Port 443, höchstwahrscheinlich aufgrund einer Fehlkonfiguration von VirtualHost.

Prost!

alexm
quelle
1
localhost: 443 lädt plian html, was tun?
Niran
@niran Ich denke , es auf Ihrem O Vorgaben für die abhängig <VirtualHost>Richtlinie. Versuchen Sie, die Standardeinstellung herauszufinden und entsprechend anzupassen, und stellen Sie sicher, dass SSL auf diesem VirtualHost aktiviert ist.
Alexm
1
Hatte dieses Problem mit einem vhost, weil 000-default.conf einen unbenutzten: 443-Abschnitt ohne SSLEngine hatte. Das Apache-Protokoll zeigte dies, was mich auf den richtigen Weg brachte:AH01916: Init: (myhost.example.com:443) You configured HTTP(80) on the standard HTTPS(443) port!
Mivk
Mein Problem war, dass ich "sudo a2ensite default-ssl.conf" nicht ausgeführt hatte. Die ssl conf befand sich einfach nicht im Sites-fähigen Verzeichnis, sondern nur in Sites-Available.
Json
10

Wenn Sie nach dem Einrichten eines neuen https vhost den Fehler haben und die Konfiguration richtig zu sein scheint, denken Sie daran, auch einen Link zu erstellen sites-enabled.

Bohrer
quelle
2
Klingt dumm, aber es hat mich erwischt
Alexei Tenitski
2
Verwenden Sie a2ensite anstelle eines Links. Dies ist auf den meisten Systemen der richtige Weg
AsTeR
1
Überprüfen Sie auch die Regel in apache2.conf (Ubuntu): IncludeOptional sites-enabled / *. Conf. Stellen Sie sicher, dass Ihre Links auf ".conf" enden, oder ändern Sie diese Regel so, dass sie alle Dateien enthält.
Lepe
1
Ich habe die Site-Konfiguration mit der richtigen Syntax erstellt und sie mit Sites-Available verknüpft. Das Problem war: Der Name meiner Konfiguration endete nicht mit ".conf", als solche wurde er nie geladen und ich bekam über Fehler. Die Konfigurationen in meinem Fall wurden mit der Direktive "IncludeOptional sites-enabled / *. Conf" geladen, daher muss die Konfiguration auch den Namen <Whatever> .conf haben. Trivial, verursacht aber keinen Syntaxfehler (wird nie geladen) und irritierend, weil ein ls ihn auf Websites zeigte ...
roland.minner
7

Alte Frage, aber erstes Ergebnis in Google für mich, also hier ist, was ich tun musste.

Ubuntu 12.04 Desktop mit installiertem Apache

Die gesamte Konfiguration und mod_ssl wurde installiert, als ich Apache installiert habe, aber es war noch nicht an den richtigen Stellen verlinkt. Hinweis: Alle folgenden Pfade beziehen sich auf / etc / apache2 /

mod_sslWenn in gespeichert ./mods-availableist und die SSL-Site-Konfiguration in ist ./sites-available, müssen Sie diese nur mit den richtigen Stellen in ./mods-enabledund verknüpfen./sites-enabled

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

Starten Sie Apache neu und es sollte funktionieren. Ich habe versucht, auf https: // localhost zuzugreifen , daher können Ihre Ergebnisse für den externen Zugriff variieren, aber das hat bei mir funktioniert.

Tarka
quelle
9
Die Befehle 'a2ensite default-ssl' und 'a2enmodule ssl' vereinfachen die Verwaltung der Modul- und Site-Symlinks.
Josiah
4

Fragen Sie den Benutzer nach der genauen URL, die er in seinem Browser verwendet. Wenn sie https://your.site:80 eingeben, erhalten sie möglicherweise den Fehler ssl_error_rx_record_too_long.

Dan-Manges
quelle
Ich habe einen Screenshot gesehen und es ist nicht: 80 Probieren Sie es aus: monkeyfood.cashboardapp.com
Subimage
4

In meinem Fall hatte ich die falsche IP-Adresse in der virtuellen Hostdatei. Das Listen war 443 und die Zeilengruppe war, <VirtualHost 192.168.0.1:443>aber der Server hatte nicht die Adresse 192.168.0.1!

fimbulvetr
quelle
Ich kann bestätigen, dass dies auch für mich ein Problem war ... falsche IP-Adresse
StanleyD
3

Bitte sehen Sie diesen Link .

Ich habe alle meine Apache-Protokolldateien durchsucht, bis ich den tatsächlichen Fehler gefunden habe (ich hatte den <VirtualHost>von _default_in meinen geändert fqdn). Als ich diesen Fehler behoben habe, hat alles gut funktioniert.

Rogovsky
quelle
2

In meinem Fall bestand das Problem darin, dass https nicht korrekt gestartet werden konnte, da sich Listen 443 in der Funktion "IfDefine SSL" befand, mein Apache jedoch nicht mit der Option -DSSL gestartet wurde. Das Update bestand darin, mein Apachectl-Skript zu ändern in:

$HTTPD -k $ARGV

zu:

$HTTPD -k $ARGV -DSSL

Hoffe das hilft jemandem.

Jeff Atwood
quelle
1

Mein Problem war auf eine NIEDRIGE MTU über eine VPN-Verbindung zurückzuführen.

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

Fix: Netsh-Schnittstelle IPv4-Set-Schnittstelle "Wireless Network Connection" mtu = 1400

Es kann auch ein Problem über eine Nicht-VPN-Verbindung sein ...


quelle
1

Ich hatte eine durcheinandergebrachte Konfiguration des virtuellen Hosts. Denken Sie daran, dass Sie einen virtuellen Host ohne SSL für Port 80 und einen anderen mit SSL für Port 443 benötigen. Sie können nicht beide in einem virtuellen Host haben, wie es die von Webmin generierte Konfiguration versucht hat.


quelle
0

Ich hatte in einigen Browsern das gleiche Problem beim Zugriff auf meine SSL-Site. Ich habe festgestellt, dass ich fireFox den richtigen Proxy geben musste (FireFox hat direkt auf das Internet zugegriffen).

Abhängig von der LAN-Konfiguration (Tunneling, Filterung, Proxy-Umleitung) löst der Modus "Direkter Zugriff auf das Internet" für FireFox diesen Fehler aus.

Pierre-Gilles Levallois
quelle
Einige Proxys geben eine HTTP-Fehlerantwort auf eine nicht erwartete HTTPS-Anforderung zurück (z. B. wenn Sie den falschen Proxy durchlaufen haben oder der Proxy falsch konfiguriert ist). Dies kann sehr schwer zu diagnostizieren sein, da Browser nur die gesamte Konversation ablehnen und einen Fehler auslösen, anstatt Ihnen die Fehlermeldung des Proxys anzuzeigen. Wireshark macht den Job. Bin gerade selbst darauf gestoßen.
Leichtigkeitsrennen im Orbit
0

Sie können auch versuchen, die Hosts-Datei zu reparieren.

Behalten Sie die vhost-Datei mit der vollständig qualifizierten Domäne bei und fügen Sie den Hostnamen in die Hosts-Datei / etc / hosts (debian) ein.

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

Nach dem Neustart von apache2 sollte der Fehler behoben sein.

Gaspard
quelle
0

Für mich war die Lösung, dass mein ddclient nicht richtig cronning ...

Anon
quelle