NET::ERR_CERT_INVALID Fix (No Proceed Link)
NET::ERR_CERT_INVALID blocks a malformed cert, no bypass. 3 checks find it: all sites vs one, middlebox, or broken cert. Free instant check, no sign-up.
Check your domain for this issue now
Free, no sign-up. Runs the exact check this guide describes and shows what to fix.
Problem
Chrome shows NET::ERR_CERT_INVALID and blocks the page with “Your connection is not private” — but unlike the certificate errors you’ve seen before, there’s no “Proceed to site (unsafe)” link to click. The wall is solid. That missing link is the whole story: Chrome isn’t saying it distrusts the certificate, it’s saying it couldn’t make sense of the certificate at all.
Symptoms
- Chrome reports
NET::ERR_CERT_INVALIDwith no override option on the warning page. - The error appears on every HTTPS site, or on one specific site — those two cases have opposite causes.
- Firefox shows
SEC_ERROR_BAD_DERor a generic “problem occurred” on the same site. openssl s_client -connect host:443returns a parse error or a certificate that other tools also reject.- Turning off antivirus “HTTPS scanning” or “SSL/TLS filtering” makes it disappear.
What NET::ERR_CERT_INVALID Actually Means
Chrome’s certificate errors aren’t interchangeable, and the numeric code tells you which kind you have. In Chromium’s net_error_list.h, ERR_CERT_INVALID is -207, and its comment is exactly one sentence: “The server responded with a certificate that is invalid. This error is not recoverable.”
That last part matters. Compare the neighbors:
-200ERR_CERT_COMMON_NAME_INVALID— the cert is valid, the hostname doesn’t match.-201ERR_CERT_DATE_INVALID— the cert is valid, it’s expired or not yet valid.-202ERR_CERT_AUTHORITY_INVALID— the cert is valid, Chrome doesn’t trust the issuer.-207ERR_CERT_INVALID— the cert is not valid, full stop.
The first three are recoverable: the certificate parsed fine, it just failed a check about trust, time, or name, and Chrome lets you override at your own risk. -207 is not recoverable because there’s no coherent certificate on the other end to override to — it’s corrupt, malformed, or unparseable. That’s why the proceed link is gone. Chrome removed it on purpose; there’s nothing safe to proceed to.
So the diagnostic question isn’t “is my certificate trusted.” It’s “why can’t Chrome parse a valid certificate here.” And the fastest way to split that is: all sites, or one site?
Top 3 Causes
- A TLS-intercepting middlebox is handing Chrome a broken cert (all sites fail). Antivirus HTTPS scanning, a corporate MITM proxy, or adware installs its own root and re-signs every HTTPS connection on the fly. When that re-signing engine is buggy, its root isn’t properly installed, or malware injects a malformed cert, Chrome receives an invalid certificate on every site at once. This is the most common cause of ERR_CERT_INVALID on a single machine. The tell: every HTTPS site breaks, and disabling the scanner fixes all of them.
- The server is serving a malformed or corrupt certificate (one site fails). The deployed certificate file isn’t a well-formed X.509 — a truncated PEM, the wrong file uploaded, mismatched key and cert, invalid DER encoding, or a cert built with fields Chrome refuses to parse. Other clients and openssl reject it too. The tell: one site fails for everyone, everywhere, while the rest of the web is fine.
- A private or appliance CA emitted a structurally invalid certificate. Internal CAs, load balancers, and embedded devices sometimes generate certs with negative serial numbers, malformed extensions, or bad encoding that older tooling tolerated and modern Chrome rejects outright. The tell: it’s an internal or device URL, and the cert came from something other than a public CA.
Diagnose with DechoNet
- SSL Check fetches the certificate the server actually serves and reports whether it parses and chains correctly — if SSL Check reads a clean, valid certificate but your browser still shows ERR_CERT_INVALID, the problem is on your machine, not the server.
- HTTP Check confirms the final HTTPS response once a malformed certificate is replaced with a valid one.
Resolution Checklist
- Decide the split first: does ERR_CERT_INVALID hit every HTTPS site or just one? This single question routes you to the right half of the fixes.
- All sites → disable your antivirus’s “HTTPS scanning” / “SSL/TLS filtering” and test. If it clears, that engine is the culprit — update or reinstall it, or leave the feature off.
- All sites, no antivirus → check for a rogue root: scan for adware/malware and review installed root certificates for anything you didn’t add.
- One site → run SSL Check from outside your network. If it also reports an invalid certificate, the server is serving a broken cert; if it reports a clean one, the fault is local.
- Server side: re-deploy the certificate from the CA’s original files, confirm the private key matches, and verify with
openssl x509 -in cert.pem -noout -textthat it parses. - Don’t rely on
thisisunsafe— it hides the wall for you but leaves the certificate invalid for every real visitor.
When to Escalate
- If SSL Check reads a valid certificate but a managed corporate device still shows ERR_CERT_INVALID, this is a device-policy or proxy issue — escalate to whoever manages the TLS-inspection appliance, not the site.
- If the invalid certificate is served by a CDN or managed platform you don’t control, open a ticket with that provider and include the SSL Check output showing the malformed certificate.
Related Tools
Related Guides
Share this guide