Your Connection Is Not Private: What It Means, How to Fix

Chrome's 'Your connection is not private' page has a code under it. Read the code, tell a visitor problem from a site problem, and fix either in minutes.

“Your connection is not private” is the red page Chrome shows when it cannot verify the certificate a site presented. Edge, Brave, Opera, and every other Chromium browser show the same page. Firefox calls it “Warning: Potential Security Risk Ahead” and Safari says “This Connection Is Not Private”. Under the headline, in small grey type, is an error code. The code is the actual diagnosis; the headline is just Chrome’s way of saying “certificate check failed.”

There are two very different situations behind this page:

  • Every visitor sees it. The site’s certificate or server configuration is broken. The site owner has to fix it.
  • Only you see it. Your device, network, or software is interfering with the check. The site is fine and the fix is on your side.

Start by finding out which one you are in, then use the code to pick the fix.

Step 1: Is it the site or is it you?

Load the same address on a phone using mobile data instead of Wi-Fi. If it loads there, the problem is your computer or network. If the phone shows the same warning, the problem is the site.

If you do not have a second device, run the domain through the SSL certificate checker. It connects from an independent server and reports the certificate’s dates, issuer, and hostname match. A clean result there with an error on your screen means the cause is local.

If you are seeing the warning on every site, not just one, skip ahead to certificate errors on all websites; that is nearly always a clock, an antivirus, or a Wi-Fi login page.

Step 2: Read the code

Click Advanced on the error page to see the full sentence, but the code alone is usually enough.

Code Chrome’s reading Most likely cause
NET::ERR_CERT_DATE_INVALID The certificate’s dates do not include right now Expired certificate, or the visitor’s clock is wrong
NET::ERR_CERT_AUTHORITY_INVALID Issued by an authority the browser does not trust Self-signed certificate, missing intermediate, antivirus or proxy interception, very old OS
NET::ERR_CERT_COMMON_NAME_INVALID Certificate is for a different name Certificate covers example.com but not www.example.com, or a CDN default certificate
NET::ERR_CERT_REVOKED The authority revoked it Key compromise or a certificate reissued after a mass revocation
NET::ERR_CERT_INVALID Chrome could not parse it Corrupt or malformed certificate file on the server
NET::ERR_CERT_WEAK_SIGNATURE_ALGORITHM Signed with SHA-1 or weaker Ancient certificate or internal CA
NET::ERR_SSL_VERSION_OR_CIPHER_MISMATCH No shared TLS version or cipher Server only offers TLS 1.0/1.1 or an obsolete cipher suite
NET::ERR_CERT_SYMANTEC_LEGACY Old Symantec-issued certificate Replace it; these are distrusted everywhere

Fixes when the problem is on your side

Your clock is wrong

The most common cause of a single person seeing this on many sites. A certificate is valid between two dates, and the browser checks them against your device’s clock. A dead motherboard battery, a restored virtual machine, or a phone that spent months in a drawer can leave the clock years off.

Fix: turn on automatic time. Windows: Settings → Time & language → Date & time → Set time automatically. macOS: System Settings → General → Date & Time → Set time and date automatically. Android and iOS have the same switch under Date & time. Reload the page.

Antivirus is scanning HTTPS

Avast, AVG, Kaspersky, Bitdefender, ESET, and others can decrypt your web traffic to scan it. To do that they present their own certificate to the browser. When their certificate is stale, or a browser update stops trusting it, you get ERR_CERT_AUTHORITY_INVALID on sites that are perfectly healthy. Click the padlock or “Not secure” label, view the certificate, and look at the Issued by line. If it names your antivirus vendor, that is the cause.

Fix: update the antivirus, or turn off its “HTTPS scanning”, “web shield”, or “encrypted connections scan” setting and reload.

You are behind a Wi-Fi login page

Hotel, airport, café, and campus networks intercept every request until you accept their terms. The intercept page presents its own certificate under the name of the site you asked for, so Chrome refuses it. Fix: open a plain http:// address such as http://neverssl.com, complete the login page, then retry.

A corporate proxy or filter

Employer networks and some school networks decrypt HTTPS for content filtering, exactly like antivirus does. The certificate issuer will be your organisation. Nothing on the website can change this; IT has to renew the proxy certificate or add an exception.

An old operating system

Windows 7, macOS before 10.12, Android before 7.1, and old Linux images are missing newer root certificates. Millions of sites use Let’s Encrypt, whose root certificate is not present on those systems, so they fail with ERR_CERT_AUTHORITY_INVALID. Fix: update the OS, or on Linux update the ca-certificates package. The command-line version of this problem is covered in curl (60): certificate has expired.

A VPN or DNS changer

Some free VPNs and “ad blocking DNS” services redirect blocked domains to their own servers, which cannot present a valid certificate for the domain. Disconnect the VPN or reset DNS to automatic and retry.

Stale browser state

Close the tab, clear the site’s data (padlock → Site settings → Clear data), or open an incognito window with extensions disabled. If incognito works and the normal window does not, an extension is interfering.

Fixes when the problem is the site

These are for the site owner. If you are a freelancer or agency and a client sent you a screenshot of this page, run the SSL certificate checker first; it tells you which of these you are dealing with.

The certificate has expired

NET::ERR_CERT_DATE_INVALID for everyone. Renew and reload the web server. The platform-by-platform steps for certbot, cPanel, Plesk, Cloudflare, IIS, and managed hosts are in Certificate has expired: how to fix it on any platform, and the reasons “automatic” renewal quietly stops are in why your SSL certificate expired without warning.

The name does not match

NET::ERR_CERT_COMMON_NAME_INVALID. The certificate was issued for example.com and the visitor typed www.example.com, or the other way round; or the DNS record points at a CDN or host that is serving its default certificate because the domain was never added there. Fix: reissue the certificate with both names, or add the domain to the CDN/host so it provisions its own. Then redirect one form to the other so visitors only ever land on one.

The intermediate certificate is missing

NET::ERR_CERT_AUTHORITY_INVALID for some visitors and not others. The server sends only the leaf certificate, and browsers that have not cached the intermediate cannot build the chain. Desktop Chrome often papers over this; Android and Firefox do not. Fix: install the full chain. With certbot, point the server at fullchain.pem, not cert.pem. With a purchased certificate, install the CA bundle your provider supplied.

The server is self-signed or uses an internal CA

Fine for a staging environment, wrong for anything a customer visits. Fix: issue a real certificate. Let’s Encrypt is free and every major host and panel supports it.

The server only offers old TLS

ERR_SSL_VERSION_OR_CIPHER_MISMATCH. Modern browsers refuse TLS 1.0 and 1.1. Enable TLS 1.2 and 1.3 in the web server or load balancer configuration. Very old shared hosting is the usual home of this one.

The certificate was revoked

NET::ERR_CERT_REVOKED. Certificate authorities occasionally revoke large batches, and hosting providers do not always reissue automatically. Fix: request a new certificate from the authority and install it.

Can you just bypass it?

On a site without HSTS, Advanced → Proceed to example.com (unsafe) loads the page. On a site with HSTS, Chrome removes that link on purpose. Typing thisisunsafe on the error page still works in current Chrome, but reserve that for your own test server. Never tell customers or clients to click through; the warning exists because anyone on the network could be reading or altering the traffic.

Stop hearing about it from customers

For a visitor, the fix is a setting. For a site owner, the fix is renewal or configuration, but the underlying problem is that a browser warning was the first sign anything was wrong. By then every visitor has already been turned away.

Check the served certificate on a schedule instead. SitesRadar’s free plan monitors one site’s certificate and emails you 30, 14, and 7 days before it expires, and alerts you when the served certificate changes, alongside uptime, broken links, and DNS. If you look after several client sites, the SSL certificate expiration monitoring guide covers thresholds and an inventory you can run across all of them.

FAQ

Is “Your connection is not private” a virus? Almost never. It is the browser refusing a certificate. If you see it on every site and your clock is right, check whether your antivirus is scanning HTTPS before suspecting malware.

Why does the site work on my phone but not my laptop? Because the laptop’s clock, antivirus, VPN, or network is the cause. The site is fine.

I renewed the certificate and visitors still see the warning. The web server was not reloaded, a CDN or load balancer in front of it is still serving the old certificate, or the visitor has a stale tab. Reload the server, check the edge, and ask them to close the tab.

Does this mean the site is dangerous? It means the browser cannot prove who you are talking to. On a site you own, it is almost always a lapsed or misconfigured certificate. On an unknown site over public Wi-Fi, treat it as a real warning and do not enter passwords.

← More from the SitesRadar blog