
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.
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:
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
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.
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.
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.
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:
chrome://settings/Or clear all browsing data including cached content.
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.
Server-side:
Client-side:
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.
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 moreCursor 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 moreClaude 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 moreLooking to monitor your website and domains? Join our platform and start today.