SSL_ERROR_RX_RECORD_TOO_LONG in Firefox: What It Means and the Fix
Firefox asked for https but the server answered on port 443 with plain http. Usually SSL isn't enabled or 443 is routed to an http port. In Chrome: ERR_SSL_PROTOCOL_ERROR.
On this page
SSL_ERROR_RX_RECORD_TOO_LONG: what it means
With https, the browser opens the conversation with an encrypted "handshake" (the TLS handshake) and expects a reply in the same "language". When the server isn't configured for https on that port, it replies with plain http text, something like "HTTP/1.1 400 Bad Request". Firefox tries to read that text as a TLS packet, the "length" it gets is absurdly large, and it stops, saying it received a record longer than allowed.
Put simply: you knocked on the https door and someone who only speaks http answered. It doesn't mean the site was hacked; it is a configuration problem.
How it looks in Chrome, Edge, Firefox and Safari
| Browser | What the page says | Code |
|---|---|---|
| Firefox | "Secure Connection Failed" | SSL_ |
| Chrome | "This site can't provide a secure connection" and below it "X sent an invalid response." | ERR_ |
| Edge | Same code as Chrome (Edge is built on Chromium), with its own wording on the page | ERR_ |
| Safari | "Safari Can't Open the Page" | — |
Chrome's code also covers other causes (computer clock, antivirus and more); see the ERR_
If you are a visitor
- Check the address. If there is a port after the name (e.g. https://company.com:80 or :8080), remove it and try again.
- Try another network or device. If the error appears everywhere, the server is at fault: let the site owner know.
- If it only happens to you, check proxy, VPN and antivirus. A proxy set up wrongly in Firefox's network settings, or software that "scans" https, can answer with http where https is expected.
- Don't look for a "continue" button. This is not a certificate warning you can click past; the secure connection simply wasn't set up.
If you own the website: the usual causes
- SSL isn't enabled on port 443. The server listens on 443 but without encryption. In Apache this happens when the
<VirtualHost *:443>block lacksSSLEngine onand the certificate lines. In Nginx, when you writelisten 443;instead oflisten 443 ssl;. Add the SSL settings and restart the service. - The certificate hasn't been issued or activated yet. In some setups, until the certificate is issued and applied, port 443 doesn't serve proper https. Open your hosting control panel, check that SSL is enabled for this exact domain and issue (or re-issue) the free certificate.
- Wrong port in the address or links. https://company.com:80 or https://company.com:8080 sends encrypted traffic to a port that speaks plain http. Check redirects, the site address in your CMS settings and any links that include a port.
- Proxy, load balancer or port forwarding to http. If a reverse proxy or load balancer passes port 443 traffic untouched to a backend that only speaks http, or your router forwards external 443 to internal 80 (common with NAS boxes and cameras), you get this error. Either the proxy "unlocks" TLS and talks http to the backend, or the backend must listen for https.
PR_END_OF_FILE_ERROR: the related case
Under the same "Secure Connection Failed" title, Firefox sometimes shows the code PR_. Here the connection was closed abruptly in the middle of the handshake, with no reply at all. Usually something between you and the site is to blame: a proxy, VPN or antivirus that "scans" https connections. Try without them and from another network. If the error appears everywhere, the server or a firewall in front of it is closing the connection and the owner needs to look at it.
Confirm that port 443 doesn't speak https
The SSL Checker connects to the domain on port 443 and tries to complete the TLS handshake. If the server answers with plain http, it gets no certificate and reports "No certificate found", confirming the problem. You can test another port too, e.g. company.com:8443. The Redirect Checker shows whether http:// opens and where it redirects, and the Uptime Checker whether the site answers from outside.
→ SSL Checker → Redirect Checker → Uptime CheckerMore: ERR_
Common mistakes
- Renewing or buying a certificate when the real problem is that SSL isn't even enabled on port 443.
- Adding an http to https redirect before https works: you send every visitor straight to the error.
- Testing in one browser only: in Chrome the same problem is called ERR_
SSL_ PROTOCOL_ ERROR and you may think it is a different issue. - Forgetting that behind Cloudflare the SSL Checker sees Cloudflare's certificate, not your server's; for problems between Cloudflare and your server see Cloudflare errors 521, 522, 525, 526.