How to Fix ERR_CERT_AUTHORITY_INVALID in Chrome
Read who signed the rejected certificate, then follow the fix for your device, your network or your dev server.
Updated
TL;DR
ERR_CERT_AUTHORITY_INVALID is Chrome refusing a certificate signed by an authority it does not trust, and it stops the page before any data is sent. On public Wi-Fi, open an http:// page to reach the sign-in screen first; elsewhere, look for antivirus or a work network re-signing HTTPS.
What ERR_CERT_AUTHORITY_INVALID looks like in Chrome and its tools
All rows come from one untrusted certificate; Chrome changes the wording for HSTS sites and known interception software.
| Where | What you see |
|---|---|
| Chrome warning page (tab title: Privacy error) | Your connection is not private. Attackers might be trying to steal your information from example.com (for example, passwords, messages, or credit cards). NET::ERR_CERT_AUTHORITY_INVALID |
| Chrome, after clicking Advanced | This server could not prove that it is example.com; its security certificate is not trusted by your computer's operating system. This may be caused by a misconfiguration or an attacker intercepting your connection. |
| Chrome on a site that uses HSTS, after clicking Advanced | You cannot visit example.dev right now because the website uses HSTS. Network errors and attacks are usually temporary, so this page will probably work later. |
| Chrome, when the issuer matches known antivirus, firewall or filtering software | An application is stopping Chrome from safely connecting to this site |
| Chrome DevTools console, failed fetch() or subresource | Failed to load resource: net::ERR_CERT_AUTHORITY_INVALID |
| Puppeteer page.goto() | net::ERR_CERT_AUTHORITY_INVALID at https://example.com |
Why this happens
Chrome got a certificate whose signer is not on its list of trusted authorities.
Chrome accepts only certificates that lead to its built-in roots or to roots you or an administrator installed. Self-signed dev certificates lead to neither, nor do ones that antivirus, a company firewall or a Wi-Fi sign-in page substitutes.
Diagnose your ERR_CERT_AUTHORITY_INVALID first
The first four checks need no terminal; the last one is for developers.
Click the NET::ERR_CERT_AUTHORITY_INVALID code on the warning; if the Issuer line names antivirus, a firewall or your employer, that product re-signed the connection.
Compare the Issuer with the Subject in that box; if both show the same name, the server uses a self-signed certificate.
Load the page on a second device using this Wi-Fi; if it fails there too, the network or site is the cause, not this computer.
Look at the address; if it is localhost, 127.0.0.1 or a test name you run, your development certificate's CA is not trusted yet.
Run openssl s_client -connect host:443 -servername host -showcerts; if the last i: line names a private or unknown CA, Chrome lacks that root.
Solutions ranked by effectiveness
Start with the software and network between you and the site; the third fix is for your own dev server.
- Most common fix
Fix HTTPS scanning by antivirus or work proxies
Applies on a computer with antivirus or a managed work device. Google ties this code to antivirus "HTTPS scanning" and to work proxies such as Zscaler, Palo Alto Networks or Fortinet.
Briefly turn off the antivirus or its "HTTPS scanning", reload, then turn it back on.
If the page loaded with it off, reinstall or uninstall that antivirus.
On a work device, ask IT to install the proxy's certificate; don't install it yourself.
- Check next
Sign in to the Wi-Fi network
Applies on hotel, cafe or airport Wi-Fi, where a sign-in page answers before the internet does. Chrome may show "Connect to Wi-Fi" instead; its Connect button opens the page.
Open a new tab and go to http://example.com.
Complete the network's sign-in or terms page that appears.
Return to the first tab and reload it.
- For developers
Trust your dev certificate with mkcert
Applies to localhost and your own test names. Run mkcert -install once, then mkcert localhost 127.0.0.1 ::1, and load the two files it writes.
# Files come from: mkcert localhost 127.0.0.1 ::1 import http.server, ssl class Hello(http.server.BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.end_headers() self.wfile.write(b"Served over HTTPS with a locally trusted certificate\n") server = http.server.ThreadingHTTPServer(("localhost", 8443), Hello) ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) ctx.load_cert_chain("localhost+2.pem", "localhost+2-key.pem") server.socket = ctx.wrap_socket(server.socket, server_side=True) server.serve_forever()
Stop the ERR_CERT_AUTHORITY_INVALID from coming back
Habits for developers, IT teams and everyday users that keep untrusted certificates out of Chrome.
Name local projects under .test or localhost; Chrome preloads every .dev and .app name as HTTPS-only.
Keep mkcert's rootCA-key.pem private and out of repositories; whoever holds it can intercept HTTPS from your machine.
Push inspection CAs through Group Policy or device management, so every new laptop trusts them from day one.
Turn on automatic operating system updates; Google lists updating Windows or macOS as a step for this warning.
Related errors
Learn more
FAQ
Copy-ready proxy code
Pick Python, Node.js or Go; Geonode's dashboard writes the snippet from your proxy settings.


