So sieht die Meldung aus
Secure Connection Failed – Error code: SSL_ERROR_RX_RECORD_TOO_LONGHäufige Ursachen
- In nginx steht
listen 443;ohnessl. - Apache-VirtualHost auf *:443 ohne
SSLEngine on. - Portweiterleitung im Router oder Load Balancer zeigt von 443 auf den HTTP-Port 80.
- Ein anderer Dienst (z. B. eine App ohne TLS) belegt Port 443.
- TLS-Terminierung im Proxy abgeschaltet, Backend spricht nur HTTP.
Prüfen
- Mit HTTP auf Port 443 testen – kommt HTML, spricht der Server kein TLS
curl -s --max-time 5 http://example.com:443/ | head -c 300 - TLS-Handshake direkt testen (Fehler „wrong version number“ bestätigt den Befund)
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | head -n 3 - listen-Zeilen für 443 in der aktiven Konfiguration anzeigen
nginx -T 2>/dev/null | grep -nE '^\s*listen .*443' - Prozess auf Port 443 ermitteln
ss -ltnp | grep ':443 '
Lösung
- In nginx
listen 443 ssl;undlisten [::]:443 ssl;setzen, dazussl_certificateundssl_certificate_key. - In Apache
SSLEngine onim 443er-VirtualHost aktivieren undmod_sslladen. - Portweiterleitungen prüfen: 443 extern muss auf einen TLS-Port intern zeigen.
- Danach
nginx -t && systemctl reload nginxbzw.apachectl configtest && systemctl reload apache2.
Häufige Fragen
Wie heißt der Fehler in Chrome?
Chrome zeigt meist ERR_SSL_PROTOCOL_ERROR, curl meldet „wrong version number“. Die Ursache ist dieselbe: Klartext auf einem TLS-Port.
Reicht http2 in der listen-Zeile?
Nein. Ohne ssl lauscht nginx unverschlüsselt. Seit nginx 1.25.1 aktivieren Sie HTTP/2 separat mit http2 on;.