Chrome browser tab showing ERR_SSL_PROTOCOL_ERROR with a red warning icon
# website errors# troubleshooting# ssl

ERR_SSL_PROTOCOL_ERROR: What It Means and How to Fix It

ERR_SSL_PROTOCOL_ERROR is Chrome's way of saying that the SSL/TLS handshake failed before a secure connection could be established. It's related to but different from certificate errors — the problem here is with the protocol negotiation itself, not necessarily with whether the certificate is valid.

What Causes ERR_SSL_PROTOCOL_ERROR?

SSL/TLS Not Configured on the Server

If you're accessing a site via https:// but the server isn't actually set up to handle HTTPS on port 443, you'll get this error. The server might be running fine on HTTP (port 80) but has no SSL configured.

This often happens on:

  • Development servers that only listen on port 80
  • Sites that recently moved to a new server and haven't set up SSL yet
  • Misconfigured virtual hosts that don't have an SSL block

Unsupported Protocol Version

If your server only supports TLS 1.0 or TLS 1.1 — both of which have been deprecated — modern browsers including Chrome will refuse to connect and show ERR_SSL_PROTOCOL_ERROR.

Chrome dropped support for TLS 1.0 and 1.1, so servers still using these versions will fail for many users.

Fix in Nginx:

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;

Fix in Apache:

SSLProtocol -all +TLSv1.2 +TLSv1.3

HTTPS Redirect Loop on Port 443

If your server is configured to redirect HTTPS traffic to itself or has an SSL configuration error that causes it to fail immediately, Chrome shows this error rather than the redirect loop error.

Antivirus or Security Software Intercepting HTTPS

Some antivirus software, firewalls, and parental control tools perform "SSL inspection" — they intercept HTTPS connections and re-sign them with their own certificate. When this process breaks or uses an untrusted certificate, ERR_SSL_PROTOCOL_ERROR appears.

Try temporarily disabling your security software to test. If the error goes away, the software is the cause.

Incorrect System Date/Time

SSL certificates are time-sensitive — if your system clock is more than a few minutes off, the SSL negotiation can fail. Check your system time and make sure NTP is enabled.

Cached Bad SSL State in Chrome

Chrome stores SSL session state for performance. If a corrupted SSL state is cached, you can get persistent ERR_SSL_PROTOCOL_ERROR even after fixing the server.

Clear Chrome's SSL state:

  1. Go to chrome://settings/
  2. Search for "Manage certificates"
  3. Click "Clear SSL state" (Windows) or clear via the Security section

Or clear all browsing data including cached content.

How to Diagnose Whether It's Server or Client

Test from multiple browsers and devices. If it only happens in Chrome on one computer, it's almost certainly a client-side issue (cached state, antivirus, system clock).

If it happens everywhere, the server is the problem.

Test with OpenSSL:

openssl s_client -connect yourdomain.com:443

If you see "handshake failure" or "no protocols available", the server's SSL configuration is the issue.

Check if port 443 is even open:

telnet yourdomain.com 443

If it immediately refuses or times out, HTTPS isn't set up or is blocked.

Quick Fixes Checklist

Server-side:

  • SSL/TLS is configured on port 443
  • TLS 1.2 and 1.3 are enabled (not just 1.0/1.1)
  • Certificate is valid and not expired
  • Certificate chain is complete (no missing intermediates)
  • No redirect loop on port 443

Client-side:

  • System clock is correct
  • Chrome SSL state cleared
  • Antivirus/firewall SSL inspection disabled (or whitelisted)
  • Try in incognito or different browser to confirm

Keep Your SSL in Good Shape

SSL issues are one of those things that tend to strike at inconvenient times — after a server migration, after a certificate renews incorrectly, or after a config change. Monitoring your SSL certificate means you'll catch these problems early.

Our guide to securing your website with SSL is a good starting point if you're setting up HTTPS for the first time, and Domain Monitor will alert you if your SSL certificate is about to expire or changes unexpectedly.

More posts

What Is Generative AI? How It Works and What It Creates

Generative AI creates new content — text, images, code, and more. This guide explains how it works, what tools are available, and where it's genuinely useful versus overhyped.

Read more
What Is Cursor AI? The AI Code Editor Explained

Cursor AI is an AI-powered code editor built on VS Code. Learn what it does, how it works, and whether it's the right tool for your development workflow.

Read more
What Is Claude Opus? Anthropic's Most Powerful Model Explained

Claude Opus is Anthropic's most capable AI model, built for complex reasoning and demanding tasks. Learn what it does, how it compares, and when to use it.

Read more

Subscribe to our PRO plan.

Looking to monitor your website and domains? Join our platform and start today.