ERR_CERT_DATE_INVALID: The certificate has expired or is not yet valid
The certificate the server presented is outside its validity window — almost always expired. Either the certificate genuinely lapsed, or the device's clock is wrong so a valid certificate looks expired.
Short answer
The certificate the server presented is outside its validity window — almost always expired. Either the certificate genuinely lapsed, or the device's clock is wrong so a valid certificate looks expired.
What ERR_CERT_DATE_INVALID means
Every TLS certificate carries a notBefore and notAfter timestamp. ERR_CERT_DATE_INVALID means the current time is outside that window. Browsers refuse to establish trust and show a full-page interstitial rather than loading the site.
Causes and fixes, most likely first
The certificate expired and auto-renewal silently stopped. Renew immediately. For Let's Encrypt, run the renewal manually and read the output — the usual cause is a failing HTTP-01 challenge after a redirect or firewall change.
Renewal succeeded but the web server was never reloaded, so it still serves the old certificate from memory. Reload nginx/Apache after renewal and add that reload to the renewal hook so it never gets missed again.
The device's system clock is wrong, making a valid certificate look expired. Set the device date and time to automatic. If only one machine sees the error, this is nearly always why.
One hostname renewed but a second (www, api, a subdomain) did not. Check every hostname separately. Certificates are per-name; www.example.com and example.com are different entries unless the certificate covers both.
ERR_CERT_DATE_INVALID on specific platforms
ERR_CERT_DATE_INVALID on iPhone — iOS trusts the certificate against the device clock. A phone whose date drifted, or one restored from an old backup, reads a perfectly…
ERR_CERT_DATE_INVALID on Android — Android's certificate store is updated with the system, so an unpatched device rejects certificates issued by CAs it has never heard of and…
ERR_CERT_DATE_INVALID on Shopify — Shopify issues and renews the certificate for you, so this almost always means a custom domain whose DNS still points somewhere else —…
ERR_CERT_DATE_INVALID on Chrome — Chrome shows the interstitial with the certificate's exact expiry date, which is the fastest confirmation of whether the clock or the…
ERR_CERT_DATE_INVALID on WordPress — Managed WordPress hosts renew certificates on their own schedule, and a domain moved between hosts often keeps DNS pointing at the old host…
ERR_CERT_DATE_INVALID on Cloudflare — The Cloudflare edge certificate is valid but the origin certificate behind it expired, so Full (Strict) mode fails on the origin leg.
How to stop it happening again
Monitor certificate expiry on every hostname, including www and subdomains, with alerts 30, 14 and 7 days out.
Add a server reload to the certificate renewal hook so a successful renewal always takes effect.
Alert on the certificate the server actually serves, not the one on disk — they diverge whenever a reload is missed.
Check your own domain
The SSL checker returns the exact notAfter date and days remaining for the hostname, which immediately separates 'genuinely expired' from 'your clock is wrong'.
Frequently asked questions
How do I fix ERR_CERT_DATE_INVALID?
Check the certificate's expiry with an external SSL check. If it is genuinely expired, renew and reload the web server. If the check says the certificate is valid, your device clock is wrong — set date and time to automatic.
Why does my certificate say expired when I just renewed it?
The web server is still serving the old certificate from memory. Renewal writes new files to disk; only a reload makes the server present them.
Is it safe to continue past ERR_CERT_DATE_INVALID?
On a site you own and are actively fixing, the risk is low. On any other site, no — an expired certificate cannot be distinguished from an interception attempt from the browser's side.