
What it means: The public certificate is valid longer than Chrome allows for its issue date: 398 days, 200 since March 2026.
Free online tool — SSL certificate checker: instant results, no signup.
Runs a full TLS check: handshake, protocol versions, certificate chain, trust and expiry.
NET::ERR_CERT_VALIDITY_TOO_LONG is Chromium net error -213, "The certificate's validity period is too long." Chrome computes notAfter minus notBefore of the server certificate and compares it with the maximum lifetime allowed on the date the certificate was issued (its notBefore). It is a certificate-verification error in the TLS handshake. It is not expiry (ERR_CERT_DATE_INVALID), not a name mismatch and not related to your system clock, because only the two dates inside the certificate are compared.
Chromium applies these limits, taken from its source code:
| Certificate issued (notBefore) | Maximum validity |
|---|---|
| 1 September 2020 to 14 March 2026 | 398 days |
| On or after 15 March 2026 | 200 days |
| On or after 15 March 2027 | 100 days |
| On or after 15 March 2029 | 47 days |
The 200, 100 and 47-day steps follow CA/Browser Forum ballot SC-081v3 and were added to Chromium in September 2025. Two conditions matter: the check runs only for certificates that chain to a publicly trusted root (is_issued_by_known_root), and a certificate with a notBefore later than its notAfter is flagged too. Certificates from private or enterprise CAs are never checked.
| Browser | What you see | Most common trigger |
|---|---|---|
| Chrome | "Your connection is not private", NET::ERR_CERT_VALIDITY_TOO_LONG | Public certificate issued after 15 March 2026 with more than 200 days of validity |
| Edge | The same code (Chromium) | Same as Chrome |
| Firefox | No dedicated error code | Mozilla enforces lifetimes through its Root Store Policy rather than a separate browser error |
| Safari | Its own wording, never the Chrome code | Apple rejects certificates issued on or after 1 September 2020 with more than 398 days of validity |
Publicly trusted CAs are not allowed to issue over-long certificates, so this error is rare and can point to one of three things: a certificate issued with an outdated product setting just after a deadline (for example a "1-year" certificate dated after 15 March 2026), a mis-issued certificate that the CA should revoke and replace, or a certificate with broken dates. Apple counts 398 days as 398 periods of 86,400 seconds, and any time beyond that is an extra day.
Self-signed certificates, internal CAs, and the certificates generated by antivirus or corporate TLS inspection do not chain to a public root, so a 10-year internal certificate never produces this code. If such a certificate fails, you will see a trust error such as ERR_CERT_AUTHORITY_INVALID instead.
The browser judges the certificate served by whatever terminates TLS. On a Cloudflare-proxied hostname that is Cloudflare's edge certificate, which Cloudflare issues within the limits, so your origin certificate is not what visitors see. The relevant proxy check is the opposite case: a hostname set to DNS-only, a second load balancer, or an old node still serving a certificate you replaced elsewhere.
# compare what each backend or edge IP really serves
for ip in 203.0.113.10 203.0.113.11; do
echo "== $ip"
openssl s_client -connect $ip:443 -servername example.com </dev/null 2>/dev/null \
| openssl x509 -noout -serial -startdate -enddate
doneEvery node should return the same serial and dates. If one differs, update the certificate on that node (nginx ssl_certificate, HAProxy crt, the load balancer listener).
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null \
| openssl x509 -noout -startdate -enddate > dates.txt
start=$(grep notBefore dates.txt | cut -d= -f2)
end=$(grep notAfter dates.txt | cut -d= -f2)
echo $(( ($(date -d "$end" +%s) - $(date -d "$start" +%s)) / 86400 )) daysCompare the result with the limit for its notBefore date in the table above (GNU date syntax).nginx -t && systemctl reload nginx.Certificates issued before 15 March 2026 with up to 398 days remain valid until they expire, so there is no need to replace a compliant certificate early.
This is a server-side certificate problem; a visitor cannot fix it.
Re-run the lifetime calculation against the live host and confirm the number of days is within the limit for the notBefore date, then reload the page in Chrome in a new tab. For an external view of the dates, issuer and chain, check the hostname with the enterno.io SSL checker.
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.
Issuer, validity period, signature algorithm, covered domains (SAN), and validation type (DV/OV/EV).
Full chain verification: from leaf certificate through intermediates to root CA.
Protocol version (TLS 1.2/1.3), cipher suites, Perfect Forward Secrecy (PFS) support.
Set up a monitor — get Telegram and email alerts 30/14/7 days before expiration.
SSL certificate monitoring
TLS config audit
HTTPS as ranking factor
customer trust
www and subdomains.Strict-Transport-Security header forces browsers to always use HTTPS.SSL certificate monitoring, check history and alerts 30 days before expiry.
Sign up freeFor publicly trusted certificates issued on or after 15 March 2026 it is 200 days. It drops to 100 days on 15 March 2027 and 47 days on 15 March 2029.
No. Chrome only applies the lifetime check to certificates that chain to a publicly trusted root, so private CA certificates can have longer lifetimes.
Yes. The limit depends on the issue date, and a certificate issued before 15 March 2026 with up to 398 days remains valid until it expires.
Treat it as a server problem rather than a browser setting: the reliable fix is a certificate reissued within the limit, which then works in every browser.
Firefox has no dedicated error for certificate lifetime; Mozilla enforces limits through its Root Store Policy. Chrome checks the dates itself, so it rejects an over-long public certificate that other browsers may still accept.
Free plan — 10 monitors, checks every 5 min, no card required. Upgrade for 1-minute interval and multi-region monitoring.