Platform-specific

    ERR_SSL_PROTOCOL_ERROR on Nginx

    Why it happens on Nginx

    Nginx serves the wrong certificate chain when ssl_certificate points at the leaf file instead of the fullchain bundle, so the handshake dies before any HTTP response is written.

    The fix on Nginx

    Point ssl_certificate at fullchain.pem (not cert.pem), keep ssl_certificate_key on privkey.pem, then run nginx -t && systemctl reload nginx. Set ssl_protocols TLSv1.2 TLSv1.3; anything older is refused by modern Chrome.

    Is ERR_SSL_PROTOCOL_ERROR happening on your domain?

    The SSL checker reads the live handshake: protocol versions offered, cipher suites, chain completeness and expiry. If it cannot complete the handshake either, the fault is server-side and not your browser.

    Free, no signup. Runs from outside your network, which is the only way to tell a server fault from a local one.

    If that didn't fix it

    Nginx has its own failure mode, but ERR_SSL_PROTOCOL_ERROR has a wider set of causes that apply everywhere. The most common one overall is: the server only offers tls 1.0 or tls 1.1, which every current browser has disabled.

    All causes and fixes for ERR_SSL_PROTOCOL_ERROR

    ERR_SSL_PROTOCOL_ERROR on other platforms and devices

    Monitor this continuously with LemWatch

    A one-off err_ssl_protocol_error monitoring shows you today. LemWatch re-runs the same checks around the clock and alerts you the moment something breaks — free for up to 10 sites, no card needed.

    Last verified: by the Lemwatch research team.