LightAtom

SSL_ERROR_RX_RECORD_TOO_LONG: How to Fix It

Firefox expected an encrypted TLS reply but got something else, almost always plain HTTP from a server that isn't set up for HTTPS on that port.

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

  1. Check the URL and proxy

    1. Remove a custom port from the address, or switch to http:// for local development servers.
    2. Firefox › Settings › Network Settings: choose No proxy or system settings.

Fixes on Windows

  1. Same checks

    1. Check the address and Firefox's proxy settings.

Other devices

  1. Local development

    1. Dev servers usually serve http only; open http://localhost:PORT.

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.

LightAtom team

The people who build LightAtom, a network monitor for macOS.