ERR_SSL_PROTOCOL_ERROR

Chrome couldn’t complete the TLS handshake with the site. ERR_SSL_PROTOCOL_ERROR is the broad “handshake aborted or malformed” code; the related ERR_SSL_VERSION_OR_CIPHER_MISMATCH means specifically that the browser and server share no protocol version or cipher. Both render the same “This site can’t provide a secure connection” page.

Common causes

  • No shared protocol version or cipher — the server only offers SSL/TLS 1.0/1.1, or no common cipher. This specific case is usually reported as ERR_SSL_VERSION_OR_CIPHER_MISMATCH.
  • A malformed or aborted handshake — a non-HTTPS service answering on the port, a TCP reset mid-handshake, or a middlebox/QUIC interfering — which surfaces as the generic ERR_SSL_PROTOCOL_ERROR.
  • The server is misconfigured: the wrong certificate is bound, or the chain is incomplete.
  • The device’s clock is wrong, so certificate validation fails.
  • Antivirus or firewall HTTPS scanning, or a corporate proxy, is interfering with the handshake.
  • Stale browser SSL state — a cached certificate or a QUIC/HTTP3 issue.

How to fix it

  1. 1

    Check which protocols the server actually offers. If both probes fail and the port is reachable, the server’s TLS config is the likely problem. (-tls1_3 needs OpenSSL 1.1.1+; if the flag is rejected, that’s your local OpenSSL, not the server.)

    openssl s_client -connect example.com:443 -servername example.com -tls1_2 </dev/null
    openssl s_client -connect example.com:443 -servername example.com -tls1_3 </dev/null
  2. 2

    Server side: enable TLS 1.2 and 1.3 with a modern cipher suite, disable SSL and TLS 1.0/1.1, and confirm the correct certificate and full chain are served.

  3. 3

    Client side: correct the system clock, temporarily disable antivirus HTTPS/SSL scanning to test, and restart the browser or clear cached files. If HSTS is forcing an HTTPS upgrade to a host that can’t complete TLS, delete that domain’s policy at chrome://net-internals/#hsts (Delete domain security policies).

  4. 4

    If one user sees it on one site, it’s almost always client-side (clock, antivirus, an extension). If everyone sees it, fix the server.

Catch these before your users do

SSLNudge detects ERR_SSL_PROTOCOL_ERROR and expiry issues daily and alerts you.

Start monitoring free