Skip to content
RU

NET::ERR_CERT_INVALID: Why Chrome Blocks the Site and How to Fix It

What it means: Chrome found a certificate defect outside the specific trust, name and date checks, and offers no bypass.

  1. Retry on another network and browser
  2. If it fails everywhere: inspect the served certificate
  3. Confirm extendedKeyUsage includes TLS server authentication
  4. Reissue the certificate from a public CA

Test your URL now

Runs a full TLS check: handshake, protocol versions, certificate chain, trust and expiry.

Check your site's SSL →

What NET::ERR_CERT_INVALID means

Chrome's certificate verifier maps most failures to a specific status: untrusted issuer, wrong hostname, bad dates, revocation, weak signature or key, missing Certificate Transparency, name-constraint violations. When the leaf certificate cannot be parsed, or the chain fails for a reason that has no dedicated status, the verifier sets a generic status and Chrome reports NET::ERR_CERT_INVALID (net error -207). net_error_list.h calls it "a certificate that is invalid" and adds: "This error is not recoverable."

That last line has two practical effects. When a certificate has several problems, Chrome reports the most serious one, and this code is checked first. And it belongs to the fatal group, together with ERR_CERT_REVOKED, so the warning page has no "Proceed" link at all. It is a TLS-layer certificate problem, not DNS, not HTTP, and not a cache issue.

Causes in Chrome, Edge, Firefox and Safari

BrowserWhat you seeMost common trigger
Chrome"Your connection is not private", NET::ERR_CERT_INVALID, no Proceed linkWrong extended key usage, unknown critical extension, malformed certificate
Edge"Your connection isn't private", same codeSame as Chrome
FirefoxA specific code instead: SEC_ERROR_INADEQUATE_CERT_TYPE, SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION, SEC_ERROR_BAD_DER or SEC_ERROR_CA_CERT_INVALIDThe same defects
Safari"This Connection Is Not Private"The same defects, described in Apple's own wording

Wrong extended key usage. If a certificate has an extendedKeyUsage extension, it must include serverAuth ("TLS Web Server Authentication") or anyExtendedKeyUsage. A client-authentication, S/MIME or code-signing certificate installed on a web server fails here. A certificate with no EKU extension at all is accepted.

Unknown critical extension. Internal CA templates sometimes add a custom extension and mark it critical. Chrome must reject a certificate with a critical extension it does not understand.

Malformed or broken chain certificates. A leaf the parser cannot read, or an intermediate without CA basic constraints, typically from home-made CA tooling. Two look-alikes have their own codes: a SHA-1 signature gives ERR_CERT_WEAK_SIGNATURE_ALGORITHM, and a keyUsage that does not fit the handshake gives ERR_SSL_KEY_USAGE_INCOMPATIBLE.

Behind Cloudflare, nginx or another proxy

With a proxied Cloudflare record, visitors see Cloudflare's edge certificate, which is issued by a public CA in the standard format. ERR_CERT_INVALID on a proxied hostname therefore points at a custom certificate you uploaded, or at something between the visitor and Cloudflare. Without a CDN, check every TLS terminator in turn: nginx, HAProxy, a WAF, or a corporate inspection proxy that generates its own certificates.

Inspect the extensions of each certificate file you deploy, before it reaches the server:

openssl x509 -in /etc/nginx/ssl/example.com.crt -noout \
  -ext extendedKeyUsage,keyUsage,basicConstraints,subjectAltName
# want: X509v3 Extended Key Usage: TLS Web Server Authentication
#       X509v3 Basic Constraints: CA:FALSE (or absent)

If only one network shows the error, the inspection proxy on that network is producing the bad certificate, and the fix belongs to its administrators.

If you own the site

  1. Save the certificate the server sends:
    openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null \
      | openssl x509 -outform PEM > leaf.pem
  2. Read every extension with openssl x509 -in leaf.pem -noout -text. Look for an Extended Key Usage line without "TLS Web Server Authentication" and for any extension marked critical that is not one of the standard ones (basic constraints, key usage, EKU, SAN, name constraints).
  3. Get Chrome's exact reason: open chrome://net-export, start logging, load the site, stop, and open the file in the NetLog viewer. The CERT_VERIFY_PROC_PATH_BUILT event lists the verifier's errors, for example "The extended key usage does not include server auth".
  4. Reissue: a public CA issues certificates in the expected format, for example sudo certbot --nginx -d example.com -d www.example.com. For an internal PKI, fix the template: serverAuth EKU, SAN entries, no custom critical extensions, intermediates marked CA:TRUE.
  5. Deploy, then sudo nginx -t && sudo systemctl reload nginx, and retest every node.

If you are a visitor

There is no bypass, by design. What you can do:

  • Try another network, such as mobile data. If the site loads there, the network you were on (an office or school proxy) is re-signing traffic with defective certificates; report it to its IT team.
  • Try another browser. If Firefox shows a specific code from the table above, pass it to the site owner: it names the defect.
  • If antivirus software scans HTTPS, turn that feature off and retry; a broken interception certificate looks exactly like a broken server certificate.

Clearing the cache or cookies does nothing, since certificates are not stored in the HTTP cache. If the error appears on every network and every device, only the owner can fix it.

How to confirm the fix

openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | grep "Verify return code"
# → Verify return code: 0 (ok)

curl -sv -o /dev/null https://example.com/ 2>&1 | grep "SSL certificate verify"
# → *  SSL certificate verify ok.

OpenSSL does not apply every Chrome rule, so finish with a load in Chrome itself. For an outside view of the served chain and its fields, use the enterno.io SSL checker.

Related errors

CertificateExpiry, issuer, domains (SAN)
ChainIntermediate and root CA validation
TLS ProtocolTLS version and cipher suite
VulnerabilitiesHeartbleed, POODLE, weak ciphers

Why teams trust us

TLS 1.3
supported
Full
CA chain check
3,158
checks in 30 days
30/14/7
days-to-expiry alerts

How it works

1

Enter domain

2

TLS chain verified

3

Expiry date & vulnerabilities

What Does the SSL Check Cover?

SSL/TLS is the encryption protocol that protects data between the browser and server. Our tool analyzes the certificate, chain of trust, TLS version, and knownvulnerabilities.

Certificate Details

Issuer, validity period, signature algorithm, covered domains (SAN), and validation type (DV/OV/EV).

Chain of Trust

Full chain verification: from leaf certificate through intermediates to root CA.

TLS Analysis

Protocol version (TLS 1.2/1.3), cipher suites, Perfect Forward Secrecy (PFS) support.

Expiry Alerts

Set up a monitor — get Telegram and email alerts 30/14/7 days before expiration.

DV vs OV vs EV Certificates

DV (Domain Validation)
  • Confirms domain ownership only
  • Issued in minutes automatically
  • Free via Let's Encrypt
  • Suitable for most websites
  • Most common certificate type
OV / EV
  • Organization (OV) or Extended Validation (EV)
  • Issued in 1-5 business days
  • Costs $50 to $500/year
  • For finance, e-commerce, government sites
  • Increases user trust

Who uses this

DevOps

SSL certificate monitoring

Security

TLS config audit

SEO

HTTPS as ranking factor

E-commerce

customer trust

Common Mistakes

Expired certificateBrowsers block sites with expired SSL. Set up auto-renewal or monitoring.
Incomplete certificate chainWithout intermediate CA, some browsers and bots cannot verify the certificate.
Mixed content on HTTPS siteHTTP resources on an HTTPS page — the browser lock icon disappears, reducing trust.
Using TLS 1.0/1.1Legacy TLS versions have known vulnerabilities. Use TLS 1.2+ or 1.3.
Domain mismatch in certificateThe certificate must cover all site domains, including www and subdomains.

Best Practices

Set up auto-renewalLet's Encrypt + certbot with cron — certificate renews automatically every 60-90 days.
Enable HSTSStrict-Transport-Security header forces browsers to always use HTTPS.
Use TLS 1.3TLS 1.3 is faster (1-RTT handshake) and safer — legacy ciphers removed.
Monitor expiration datesCreate a monitor on Enterno.io — get notified well before expiration.
Verify chain after renewalAfter certificate renewal, confirm that intermediate certificates are installed.

Get more with a free account

SSL certificate monitoring, check history and alerts 30 days before expiry.

Sign up free

Learn more

Sources

Frequently Asked Questions

Why is there no "Proceed anyway" link for NET::ERR_CERT_INVALID?

Chrome treats this code as unrecoverable, in the same group as revoked certificates, so the warning page offers no override. The certificate has to be fixed on the server or on the proxy that produced it.

Does ERR_CERT_INVALID mean the certificate has several problems at once?

No. When a certificate has several problems Chrome picks the most serious one to report. This code means the problem did not fit any of the specific categories, or the certificate could not be parsed.

Why does Firefox show a different error for the same site?

Firefox has its own verifier with more specific codes, such as SEC_ERROR_INADEQUATE_CERT_TYPE for a missing serverAuth key usage. That code is often the fastest way to learn what Chrome objects to.

How do I find out exactly what Chrome objects to?

Record a NetLog at chrome://net-export while loading the site and open it in the NetLog viewer. The CERT_VERIFY_PROC_PATH_BUILT event lists the verifier's errors, for example that the extended key usage does not include server auth.

Can a SHA-1 certificate cause NET::ERR_CERT_INVALID?

Chrome reports SHA-1 signatures as NET::ERR_CERT_WEAK_SIGNATURE_ALGORITHM instead. Either way, reissue the certificate with a SHA-256 signature.

Try the live tool that powered this guide

Free plan — 10 monitors, checks every 5 min, no card required. Upgrade for 1-minute interval and multi-region monitoring.