ERR_SSL_PROTOCOL_ERROR on WordPress

A WordPress site behind a host that terminates TLS separately often ends up with the site URL forced to https:// while the vhost on 443 has no certificate — the redirect loops straight into a failed handshake.

Why it happens on WordPress

A WordPress site behind a host that terminates TLS separately often ends up with the site URL forced to https:// while the vhost on 443 has no certificate — the redirect loops straight into a failed handshake.

The fix on WordPress

Confirm the certificate is installed at the host level for the exact hostname in Settings → General (including or excluding www — they are different certificates). Disable any 'force SSL' plugin while testing so you can see the raw server response.

If that didn't fix it

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

Enable TLS 1.2 and TLS 1.3 on the origin and remove the deprecated versions. On nginx set `ssl_protocols TLSv1.2 TLSv1.3;` and reload.

Check your own 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.

Frequently asked questions

Why does ERR_SSL_PROTOCOL_ERROR happen on WordPress?

A WordPress site behind a host that terminates TLS separately often ends up with the site URL forced to https:// while the vhost on 443 has no certificate — the redirect loops straight into a failed handshake.

How do I fix ERR_SSL_PROTOCOL_ERROR on WordPress?

Confirm the certificate is installed at the host level for the exact hostname in Settings → General (including or excluding www — they are different certificates). Disable any 'force SSL' plugin while testing so you can see the raw server response.

What does ERR_SSL_PROTOCOL_ERROR mean?

Chrome tried to start an encrypted connection and the server answered with something that is not valid TLS. In almost every case the server is offering a protocol version or cipher the browser refuses, the certificate is broken, or something on the network is intercepting the handshake.