ERR_SSL_PROTOCOL_ERROR is a Chrome error that means the browser attempted to establish a secure HTTPS connection and the TLS handshake failed. The browser and server could not agree on how to communicate securely, so Chrome aborted the connection rather than proceed with a potentially compromised channel.
The error appears in Chrome, Edge, Brave, and other Chromium-based browsers. Firefox shows a similar error as “SSL_ERROR_RX_RECORD_TOO_LONG” or “PR_END_OF_FILE_ERROR” depending on the specific cause.
Unlike most browser errors, ERR_SSL_PROTOCOL_ERROR can be caused by problems on either the server side or the client side. Diagnosing it correctly requires figuring out which end is responsible.
What the TLS handshake is and why it fails
When your browser connects to an HTTPS site, it performs a TLS handshake before any data moves:
- The browser announces which TLS versions and cipher suites it supports
- The server picks a version and cipher suite from that list
- The server sends its SSL certificate
- The browser verifies the certificate is valid and trusted
- Both sides derive a shared encryption key
- The encrypted connection begins
ERR_SSL_PROTOCOL_ERROR means this process broke down somewhere in steps 1-5. The specific cause determines where to look for the fix.
Is it the server or your browser?
The first thing to determine is whether the problem is on the server or your device. The fastest test:
Try a different browser. Open the same URL in Firefox or Safari. If it loads fine, the problem is Chrome-specific on your device – browser cache, settings, or an extension. If the other browser also fails, the problem is on the server.
Try a different network. Connect to a different Wi-Fi network or use your phone’s mobile data and try again. If it works on a different network, a security tool or proxy on your current network is interfering with the connection.
Try a different device. If another device on the same network can access the site, the problem is your specific device’s configuration.
Check the site from an external tool. Use SiteProbe’s SSL checker to inspect the site’s certificate from a neutral location. If the checker shows a valid certificate and clean configuration, the problem is on your end. If it shows an expired certificate, missing chain, or TLS configuration error, the problem is on the server.
Server-side causes
Expired SSL certificate
The most common server-side cause. SSL certificates have a fixed validity period – Let’s Encrypt certificates last 90 days, commercial certificates typically last one year. When a certificate expires, browsers refuse to connect.
Check the certificate expiration date using tools.hostney.com/ssl. If the certificate is expired, the site owner needs to renew and reinstall it.
On Hostney, Let’s Encrypt certificates renew automatically. If you are seeing an expired certificate on a Hostney-hosted site, contact support – the automatic renewal may have failed due to a DNS change or domain configuration issue.
TLS version mismatch
TLS has gone through several versions. TLS 1.0 and 1.1 are deprecated and disabled in modern browsers. TLS 1.2 is the current minimum, and TLS 1.3 is the preferred version.
If a server is configured to only accept TLS 1.0 or 1.1, modern browsers will refuse the connection entirely. This is increasingly rare but still occurs on legacy servers that have not been updated.
The SSL checker at tools.hostney.com/ssl shows which TLS versions a server supports. If only deprecated versions are listed, the server configuration needs updating.
Incomplete or broken certificate chain
The certificate chain links your certificate to a trusted root CA through one or more intermediate certificates. If the chain is incomplete, some clients cannot verify the certificate’s authenticity and refuse the connection.
Desktop browsers are often forgiving about incomplete chains because they can fetch missing intermediates via the AIA extension in the certificate. But this is not guaranteed, and the failure mode when it does not work is ERR_SSL_PROTOCOL_ERROR.
The SSL checker shows whether the certificate chain is complete. A broken chain requires the site owner to reinstall the certificate with the intermediate certificates included.
Cipher suite mismatch
Each TLS connection uses a cipher suite – a combination of algorithms for key exchange, authentication, encryption, and message authentication. If the server only supports cipher suites that Chrome considers weak or insecure, Chrome will refuse the connection.
Modern server configurations supporting TLS 1.2 with standard cipher suites should not hit this problem. It typically only occurs on very old or very restrictively configured servers.
SSL certificate for wrong domain
If the certificate’s Common Name and Subject Alternative Names do not include the domain you are connecting to, Chrome refuses the connection. This produces a different Chrome error (NET::ERR_CERT_COMMON_NAME_INVALID) but can appear alongside ERR_SSL_PROTOCOL_ERROR in some configurations.
Client-side causes
Date and time mismatch
This is one of the most overlooked causes of SSL errors. TLS certificate validation includes checking that the current date falls within the certificate’s validity period. If your device’s clock is wrong – even by a small amount – Chrome may conclude the certificate has not yet become valid or has already expired.
Check your device’s date and time settings. Ensure it is set to automatic time synchronization. Even a day off can trigger SSL errors across many sites simultaneously.
On Windows:
- Open Settings > Time & Language > Date & Time
- Enable “Set time automatically” and “Set time zone automatically”
- Click “Sync now”
On Mac:
- Open System Settings > General > Date & Time
- Enable “Set time and date automatically”
On Android:
- Open Settings > General Management > Date and Time
- Enable “Automatic date and time”
Antivirus or security software intercepting HTTPS
Some antivirus programs, parental control software, and corporate security tools perform HTTPS inspection by intercepting TLS connections, decrypting them, scanning them, and re-encrypting them using their own certificate. This is sometimes called SSL inspection or HTTPS interception.
When this interception software fails, is misconfigured, or uses a certificate that Chrome does not trust, Chrome sees an unexpected certificate and throws ERR_SSL_PROTOCOL_ERROR.
To test: temporarily disable your antivirus or security software and try the connection again. If the error disappears, the security software is the cause. You will need to either configure it to exclude the affected site, update the software to a version Chrome trusts, or manually import the software’s root certificate into Chrome’s certificate store.
Common software known to cause this issue:
- Avast and AVG (HTTPS scanning feature)
- Kaspersky (SSL traffic scanning)
- ESET (SSL/TLS protocol filtering)
- Corporate VPNs and proxies with SSL inspection
- Parental control software
Chrome browser cache and SSL state
Chrome caches SSL session state to speed up repeat connections. If a site’s certificate recently changed and Chrome has stale SSL state cached for it, the mismatch can trigger errors.
Clear Chrome’s SSL state:
- Open Chrome Settings
- Search for “Security” and open Security settings
- Scroll down and click “Manage certificates” (on Windows this opens the system certificate manager)
Or clear it through Chrome’s internal pages:
- Open a new tab and go to
chrome://net-internals/#hsts - Under “Delete domain security policies”, enter the domain and click Delete
- Go to
chrome://net-internals/#sockets - Click “Flush socket pools”
Then close and reopen Chrome and try the site again.
Chrome extensions
Browser extensions that intercept or modify network traffic can interfere with TLS connections. Ad blockers, VPN extensions, privacy tools, and network debuggers are common culprits.
Test in Chrome’s Incognito mode with extensions disabled (Extensions are disabled in Incognito by default). If the site loads in Incognito, an extension is the cause. Disable extensions one at a time to identify which one is responsible.
Outdated Chrome version
Chrome regularly updates its list of trusted Certificate Authorities and supported TLS configurations. An outdated Chrome version may not trust a certificate issued by a newer CA, or may not support cipher suites used by a recently updated server.
Check for Chrome updates: go to
chrome://settings/help
and Chrome will check for and install any available updates.
QUIC protocol issues
Chrome uses QUIC (the protocol underlying HTTP/3) for connections to sites that support it. Occasionally QUIC connections fail in ways that produce SSL-like errors before falling back to TCP.
Disable QUIC temporarily to test:
- Go to
chrome://flags/#enable-quic - Set it to Disabled
- Relaunch Chrome
If the error disappears, QUIC was the cause. This is usually a network-level issue – some firewalls block UDP traffic that QUIC requires. Re-enable QUIC after testing to restore normal behavior.
Fixing ERR_SSL_PROTOCOL_ERROR on Android
On Android, ERR_SSL_PROTOCOL_ERROR in Chrome mobile has the same causes but the fixes are slightly different.
Check date and time. Open Settings > General Management > Date and Time and ensure automatic date and time is enabled. This is the most common cause of SSL errors on Android that appear across many sites at once.
Clear Chrome’s cache and data.
- Open Settings > Apps > Chrome
- Tap Storage
- Tap Clear Cache, then Clear Data
- Reopen Chrome
Check for system updates. An outdated Android version may have outdated CA certificates. Open Settings > Software Update and install any pending updates.
Try a different network. If you are on a corporate or school Wi-Fi that performs SSL inspection, the same interception issue that affects desktop applies. Try on mobile data.
Disable VPN or proxy. If you have a VPN or proxy configured on your Android device, disable it and test. VPN clients with HTTPS inspection can cause identical symptoms to antivirus software on desktop.
Enable Private DNS. Changing to encrypted DNS can bypass DNS-based SSL interference:
- Open Settings > Network & Internet > Private DNS
- Select “Private DNS provider hostname”
- Enter
one.one.one.one(Cloudflare) ordns.google
When it is definitely the server
If the error appears on multiple devices, multiple networks, and in multiple browsers, the problem is on the server. Confirm by checking the certificate using SiteProbe’s SSL checker.
The SSL checker shows:
- Certificate validity dates and whether the certificate is currently valid
- The certificate chain and whether it is complete
- Which TLS versions the server supports
- Cipher suite configuration
- Whether HSTS is configured
If you are the site owner and the SSL checker shows a problem, the fix depends on what it reports:
- Expired certificate: renew or reinstall. On Hostney, contact support if automatic renewal has failed
- Incomplete chain: reinstall the certificate with all intermediate certificates included. See How to install an SSL certificate for the full process
- TLS 1.0/1.1 only: update the server’s TLS configuration to support TLS 1.2 and 1.3. On managed hosting, contact your provider
- No certificate at all: the site is not configured for HTTPS on this domain
Summary
ERR_SSL_PROTOCOL_ERROR means the TLS handshake between Chrome and the server failed. Server-side causes include expired certificates, incomplete certificate chains, and deprecated TLS versions. Client-side causes include an incorrect device clock, antivirus HTTPS inspection, stale Chrome SSL state, and interfering browser extensions.
Determine which side is the problem by testing in a different browser, from a different network, and using SiteProbe’s SSL checker to inspect the certificate from a neutral location. If the checker shows a valid certificate and the error only appears on your device, work through the client-side fixes. If the checker shows a certificate problem, the site owner needs to fix their SSL configuration.