How to Fix ERR_SSL_PROTOCOL_ERROR?

November 16, 2023

Introduction

SSL encryption protects websites and their users from malicious actors attempting to steal personal information or hack a website. If there is an issue with the website's SSL certificate or the visitor's browser configuration, the browser reports an SSL error and prevents insecure traffic.

This article helps you troubleshoot the ERR_SSL_PROTOCOL_ERROR and provides methods to fix it, regardless of whether you are a website owner or a visitor.

How to fix ERR_SSL_PROTOCOL_ERROR.

What Is ERR_SSL_PROTOCOL_ERROR?

When a user attempts to access an SSL-encrypted website, the browser exchanges credentials with the web server in a process called the TLS handshake. ERR_SSL_PROTOCOL_ERROR occurs when the server and the web browser fail to perform a proper TLS handshake, which results in the SSL receiving a corrupt handshake record.

All Chromium-based browsers report the problem as ERR_SSL_PROTOCOL_ERROR and show a message stating that the site cannot provide a secure connection. Below is an example of the error appearing in Google Chrome.

The SSL error displayed in Google Chrome.

Microsoft Edge shows a similar message, as seen in the screenshot below.

The SSL error displayed in Microsoft Edge.

Opera uses a different page style but displays the same information as Google Chrome.

The SSL error displayed in Opera.

Browsers using different engines may show different errors for the same issue. For example, Firefox shows the SSL_ERROR_RX_MALFORMED_HANDSHAKE.

The SSL error displayed in Mozilla Firefox.

Safari only reports that it cannot establish a secure connection but does not show the actual error.

The SSL error displayed in Safari on macOS.

What Causes ERR_SSL_PROTOCOL_ERROR?

The reasons for the ERR_SSL_PROTOCOL_ERROR can originate on either side of the TLS handshake. The error results from misconfigurations or overly strict security settings on a client computer, such as:

  • An antivirus or a firewall blocking the connection.
  • A misbehaving browser extension.
  • An issue with the QUIC protocol encryption.
  • Wrong system date and time.

The server-side reasons for the error include:

  • Outdated or insecure protocols installed.
  • An expired or missing SSL certificate.
  • A revoked SSL certificate.
  • The SSL-certified website not forcing the HTTPS connection.
  • The DNS A record misconfiguration.

How to Fix the ERR_SSL_PROTOCOL_ERROR?

The following sections provide solutions for fixing a website's ERR_SSL_PROTOCOL_ERROR client-side and server-side. If you are a website visitor, refer to the solutions for end users to attempt to resolve the issue locally. Website owners or administrators should read solutions for web admins.

Solutions for End Users

To determine whether your system is responsible for displaying the ERR_SSL_PROTOCOL_ERROR, try to connect to the website using another computer or smartphone. If you still cannot access the website, the problem is likely on the server side.

Conversely, if the website is accessible from another device, troubleshoot the issue by applying the solutions listed below.

Temporarily Disable Antivirus and Firewall

The ERR_SSL_PROTOCOL_ERROR can appear due to overly strict system security settings. Temporarily turning off security allows you to test whether it is the reason for the SSL error.

Below is an example of the procedure for the Windows Security suite:

1. Open Windows Security. The main page features antivirus and firewall sections.

The main page for Windows Security.

2. Go to Virus & Threat Protection and select Manage Settings in the Virus & Threat Protection Settings section.

3. Turn Real-Time Protection off.

4. Return to the main page of Windows Security and select Firewall & Network Protection.

5. Disable the firewall for the network you are currently using.

6. Try loading the website again.

Warning: Permanently disabling security can put your system at risk. Ensure you revert the settings to the previous state once you finish the test.

Disable Browser Extensions

A misbehaving browser extension can cause trouble with the SSL authentication procedure. If you use extensions, try disabling them to resolve the SSL protocol error.

The following steps show how to turn off extensions in Google Chrome:

1. Open a new tab and type the following address in the address bar:

chrome://extensions

The Extensions page appears.

2. Disable all extensions by clicking the switch in the bottom-right corner of each extension card.

The Extensions page in Google Chrome.

3. Try loading the website again. If the issue is resolved, enable extensions one by one until you find the culprit.

Disable Experimental QUIC Protocol

QUIC is an experimental UDP-based protocol developed to improve the performance of Google web apps. Deactivating it in Chrome forces the browser to use HTTP instead of HTTPS, which can help you access the website.

Follow the steps below to disable QUIC in Google Chrome:

1. Type the following address in the address bar:

chrome://flags

The Flags page appears.

2. Type QUIC in the search bar at the top of the page and press Enter.

Select Disabled from the dropdown menu on the right side of the Experimental QUIC protocol listing.

The Flags page in Google Chrome.

3. Select the Relaunch button at the bottom of the page to restart Chrome.

4. Try to access the website and see if disabling QUIC has resolved the issue.

Check System Clock

Ensure that your system's time is correctly set. Incorrect date, time, and timezone settings may cause conflicts during a TLS handshake, resulting in the ERR_SSL_PROTOCOL_ERROR.

Every operating system has a settings section for the current date and time. In Windows, for example, go to Settings > Time & Language > Date & Time Settings.

Note: Learn the difference between TLS and SSL.

Solutions for Web Admins

If you receive reports that your website shows the ERR_SSL_PROTOCOL_ERROR, there are multiple actions you can take to troubleshoot the problem. The sections below show how to deal with the most common causes of this issue.

Verify TLS Protocols in Use

Using outdated protocols may produce the ERR_SSL_PROTOCOL_ERROR when interacting with most modern browsers. A properly configured web server should use the modern TLS encryption protocols, i.e., TLS 1.2 and TLS 1.3, while outdated protocols, such as TLS 1.0, SSL 2.0, and SSL 3.0, must be disabled.

For example, if you use an Apache web server, you can modify the SSL configuration by editing the ssl.conf file:

1. Open the file in a text editor:

sudo nano /etc/apache2/mods-available/ssl.conf

2. Enable secure ciphers by setting the SSLCipherSuite value to HIGH:!aNULL:

SSLCipherSuite HIGH:!aNULL
SSLCipherSuite option in the Apache SSL configuration file.

3. Enable SSLHonorCipherOrder:

SSLHonorCipherOrder on
SSLHonorCipherOrder option in the Apache SSL configuration file.

4. Set SSLProtocol value to all +TLSv1.2 +TLSv1.3:

SSLProtocol all +TLSv1.2 +TLSv1.3
SSLProtocol option in the Apache SSL configuration file.

Save the file and exit.

5. Restart Apache:

sudo systemctl restart apache2

Check Your SSL Certificate

An expired, revoked, or improperly installed SSL certificate is frequently responsible for SSL errors. Check the status of your certificate by following the steps below:

1. Navigate to your website in a web browser and click the padlock icon in the address bar.

2. Select the padlock option from the menu.

The padlock menu in Google Chrome.

The Security card opens.

3. The bottom of the card should show your certificate as valid.

The Security card in Google Chrome.

4. Click the message to see more details about the certificate.

Certificate overview in Google Chrome.

If you determine a problem, you can obtain a new certificate from a certificate authority and install the certificate on your website.

Fix DNS Issues

Improperly configured DNS A records can also cause the ERR_SSL_PROTOCOL_ERROR. To check whether your DNS record points to the correct IP address, use the following dig command:

dig example.com +short

The command outputs the IP address associated with the domain.

Testing DNS with the dig command.

If the IP address differs from the expected, use your DNS control panel to make the necessary DNS configuration changes.

Force HTTPS

By default, websites run on HTTP protocol. However, most SSL certificates force the use of HTTPS to increase security. Using SSL encryption without forcing HTTPS may cause the SSL protocol error.

To check whether your website forces HTTPS, consult your hosting provider's documentation for the location of the relevant SSL settings.

Conclusion

This guide provided the most common troubleshooting steps for resolving the ERR_SSL_PROTOCOL_ERROR. Since the error can originate on both the server and the client side, the article included separate sections for end-users and web admins.

If you are interested in internet security, read our Ultimate Guide to Types of SSL Certificates.

Was this article helpful?
YesNo
Marko Aleksic
Marko Aleksić is a Technical Writer at phoenixNAP. His innate curiosity regarding all things IT, combined with over a decade long background in writing, teaching and working in IT-related fields, led him to technical writing, where he has an opportunity to employ his skills and make technology less daunting to everyone.
Next you should read
SSH vs. SSL: What Are the Differences?
February 23, 2023

SSH and SSL have different purposes and distinct characteristics. Learn the features of SSH vs. SSL and how each protocol works.
Read more
OpenSSL Tutorial: How Does It Work?
September 11, 2018

Even though SSL and TLS have become quite ubiquitous, we will take a brief moment to explain what they do and how they do it.
Read more
TLS vs SSL: What's the Difference?
March 25, 2021

In this tutorial, we will explain the TLS and SSL security protocols, the differences between them, and which one you should use.
Read more
How to Fix Error 526 Invalid SSL Certificate
April 20, 2023

Error 526 is an HTTPS error that happens when the website cannot establish a secure connection.
Read more