SSL_ERROR_RX_RECORD_TOO_LONG
Firefox started a secure connection, but the server replied with unencrypted data, which Firefox read as an impossibly long TLS record.
Quick checks
- Check the address: https with a port meant for http (like :8080) causes this.
- Try http:// instead, if the site isn't sensitive.
- Turn off proxies.
Fixes on Mac
Check the URL and proxy
- Remove a custom port from the address, or switch to http:// for local development servers.
- Firefox › Settings › Network Settings: choose No proxy or system settings.
Fixes on Windows
Same checks
- Check the address and Firefox's proxy settings.
Other devices
Local development
- Dev servers usually serve http only; open
http://localhost:PORT.
- Dev servers usually serve http only; open
Still not working?
Site owners: the server sends plain HTTP on the HTTPS port. In nginx, listen 443; needs ssl: listen 443 ssl; with certificate directives. In Apache, the 443 virtual host needs SSLEngine on. Test with curl -v https://example.com: “wrong version number” confirms it.
See what’s happening
LightAtom's Ports view shows which program listens on port 443 or 8080 on your Mac, so you can see what's actually answering.
Frequently asked questions
What causes SSL_ERROR_RX_RECORD_TOO_LONG?
Plain HTTP on a port where Firefox expects TLS: a server misconfigured on 443, or an https:// address pointing at an http-only port.
What is the Chrome equivalent?
Chrome usually shows ERR_SSL_PROTOCOL_ERROR for the same problem.
How do I fix it in nginx?
Change listen 443; to listen 443 ssl; and set ssl_certificate and ssl_certificate_key, then reload nginx.