ERR_CERT_DATE_INVALID
ERR_CERT_DATE_INVALID is a browser refusing to accept a certificate because of when, not who. The identity may be perfectly legitimate and the issuer entirely trusted, but the certificate is outside the window it was valid for. Either it has expired, or it has not started yet, and there are two very different reasons that can happen.
Updated August 2026 · 7 min read
-
Written by
Andrian Valeanu
Founder of Pulsetic
Andrian Valeanu founded Pulsetic and, before it, Designmodo. Across 15-plus years he has shipped web products, design tools, and monitoring software teams around the world rely on.
-
Reviewed by
Ionut Caval
Technical reviewer
Ionut Caval reviews Pulsetic's technical guides for accuracy. He works hands-on with web servers, networking, and uptime monitoring day to day, and makes sure the causes and fixes here hold up in production.
The short version: Check your device's date and time first, because the browser judges the certificate against your clock and a wrong one makes a valid certificate look expired. If the clock is right, verify the real expiry with openssl s_client. If it has genuinely lapsed, only the website owner can fix it by renewing and, importantly, reloading the server so the new certificate is actually served.
Key takeaways
- ERR_CERT_DATE_INVALID means the certificate is outside its validity window. It has either expired or has not yet become valid, so the browser refuses the connection.
- Check your own clock first. The browser compares the certificate against your device's time, so a wrong system date makes a perfectly good certificate look expired.
- One device failing while others work almost always means the device is at fault. A genuinely expired certificate fails for every visitor everywhere, simultaneously.
- This is distinct from an authority error, which is about who issued the certificate rather than when it was valid. Dates and trust are separate checks.
- Public certificates are capped at 398 days and Let's Encrypt issues for 90, so renewal has to be automated. Anything relying on someone remembering will eventually lapse.
- Error type
- HTTPS / TLS certificate error
- Whose side
- Either: an expired certificate, or your device clock
- Fix difficulty
- Easy for a visitor, moderate for an owner
- Common cause
- The certificate is outside its validity window
How did you find out TLS broke?
Pulsetic is website uptime monitoring. It checks as often as every 30 seconds, confirms a TLS failure from another region, then emails you. Certificate expiry is watched too.
10 monitors free, email alerts on failure and recovery. No credit card.
What does ERR_CERT_DATE_INVALID mean?
ERR_CERT_DATE_INVALID is what a browser reports when a certificate fails the validity-period check. Every X.509 certificate carries two timestamps, notBefore and notAfter, defined in RFC 5280, and the browser confirms that the current moment falls between them before trusting anything else about the connection. Failing that check stops the handshake regardless of how legitimate the certificate otherwise is: the issuer can be perfectly trusted and the hostname can match exactly, and it still will not connect. This is deliberate, because a certificate whose lifetime has ended may have had its private key compromised in the meantime, and the expiry date is the mechanism that limits that exposure.
The catch is that "the current moment" comes from your own device. A browser has no independent notion of the time, so a machine whose clock is wrong by days or years will reject certificates that everyone else accepts, and will occasionally accept ones it should not. That is why a wrong system clock and a genuinely expired certificate produce the same message, and why the two must be told apart before anything is fixed. A single device failing while everything else works points at the clock. Every device failing at once points at the certificate.
- 398 days
- The maximum validity period for a public TLS certificate since 2020, down from several years previously
- 90 days
- The lifetime Let's Encrypt issues, chosen deliberately so that renewal has to be automated
- 2 dates
- Every certificate carries notBefore and notAfter, and the browser checks your clock falls between them
How the ERR_CERT_DATE_INVALID error appears
The wording changes depending on your browser, device, or server. Here is how this error commonly shows up:
Your connection is not private
example.com's certificate expired. NET::ERR_CERT_DATE_INVALID
ERR_CERT_DATE_INVALID
ERR_CERT_DATE_INVALIDNET::ERR_CERT_DATE_INVALIDYour connection is not privateThis site's security certificate has expiredYour connection is not private, certificate expiredThe certificate is not yet valid
Date, authority, name and protocol failures
These are four separate checks in the same validation, and each one fails for reasons the others do not.
| Error | What it means | Who fixes it |
|---|---|---|
| ERR_CERT_DATE_INVALID | The certificate is expired or not yet valid when measured against your device clock. | The website owner, by renewing, or you, by correcting your clock. |
| ERR_CERT_AUTHORITY_INVALID | The issuer is not trusted: self-signed, an incomplete chain, or an unknown internal CA. | The website owner, by installing the full chain from a trusted issuer. |
| ERR_CERT_COMMON_NAME_INVALID | The certificate does not cover the hostname you asked for. | The website owner, by issuing a certificate that includes the name. |
| ERR_SSL_VERSION_OR_CIPHER_MISMATCH | The handshake failed before certificates mattered, over protocol or cipher support. | The website owner, by enabling modern TLS versions and ciphers. |
Which certificate check failed
Browsers report certificate problems separately because each one fails a different part of validation, and the fixes have nothing in common.
| Error | What failed | Usual cause |
|---|---|---|
ERR_CERT_DATE_INVALID | The validity window | Expired certificate, or a wrong device clock |
ERR_CERT_AUTHORITY_INVALID | Trust in the issuer | Self-signed cert, missing chain, internal CA |
ERR_CERT_COMMON_NAME_INVALID | The name on the certificate | Certificate does not cover this hostname |
ERR_SSL_VERSION_OR_CIPHER_MISMATCH | The handshake itself | Outdated TLS version or no shared cipher |
What causes ERR_CERT_DATE_INVALID?
- A certificate that has genuinely expired because renewal did not happen, which fails for every visitor at the same moment.
- A device clock or time zone set incorrectly, which makes a valid certificate appear expired or not yet valid on that device alone.
- A renewal that succeeded on disk but was never loaded, so the server keeps serving the old certificate until it is reloaded or restarted.
- An automated renewal that stopped silently: an expired ACME account, a failing HTTP or DNS challenge, or a scheduled job that no longer runs.
- A certificate that is not yet valid, which happens after issuing one ahead of time or when a server's clock runs behind.
- Only some servers behind a load balancer holding the renewed certificate, so the error appears intermittently depending on which one answers.
- Security software or a corporate proxy substituting its own certificate for inspection, where that substitute has itself expired.
How to find the cause fast
- Check the device's date, time, and time zone. A clock that is wrong explains the error immediately and costs nothing to rule out.
- Read the real validity dates from the server with
openssl s_client, rather than trusting what the browser summarises. - Test from another device on another network. Universal failure means the certificate; one device failing means that device.
- If the certificate on disk looks current but the served one does not, the server was never reloaded after renewal.
How ERR_CERT_DATE_INVALID looks from the outside
A certificate expiring is one of the few outages you can know about weeks in advance, which is what makes it such an avoidable one. Nothing degrades on the way there: the website is completely healthy right up to the second the window closes, then every visitor gets a full-page security warning at once. A plain uptime check will not help, because the server is up and answering; it is the certificate that stopped being acceptable. Watching the expiry date itself, and alerting well before it arrives, turns the most predictable failure in web hosting into a task with a deadline rather than an incident.
How to fix ERR_CERT_DATE_INVALID
If you are a visitor
- Check your device's date, time, and time zone, and enable automatic time setting. This is the single most common cause when other people can reach the website normally.
- Try the same page on another device or network. Working elsewhere confirms the certificate is fine and your device is not.
- Restart the browser after correcting the clock, since it may have cached the failed validation.
- Disable HTTPS scanning in any security suite, which substitutes its own certificate and can present an expired one.
- If every device fails, the certificate really has expired and there is no visitor-side fix. Do not click through the warning on any website where you enter information.
- On an older operating system, install pending updates, since an outdated trust store can misjudge modern certificate chains.
If you run the website
- Confirm what the server is actually serving with
openssl s_client, not what is sitting on disk. The two differ whenever a reload was missed. - Renew the certificate, then reload or restart the web server so the new one is loaded into the running process.
- Find out why automation did not fire: check the renewal timer or cron job, the ACME account status, and whether the HTTP or DNS challenge is still passing.
- Make sure every server behind a load balancer received the new certificate, since a single stale node produces an error that comes and goes.
- Automate renewal if it is still manual. With a 398-day cap and 90-day Let's Encrypt certificates, manual renewal is a deadline someone will eventually miss.
- Set the renewal to run well before expiry, typically at 30 days remaining, so a failed attempt has time to be noticed and retried.
Still not fixed? Next steps
- Confirm the device clock and time zone before anything else. It costs seconds and explains a large share of single-device reports.
- Check the actual expiry from the command line rather than from the browser, so you are reading the certificate the server is serving right now.
- Test from a second device on a different network. Failing everywhere means the certificate has genuinely lapsed; failing on one device means that device is the problem.
- If it has expired, find out why the renewal did not run: an expired ACME account, a failed challenge, a cron job that stopped, or a reload that never happened after a successful renewal.
- Remember that renewing is only half the job. A certificate renewed on disk but never loaded by the running server keeps serving the old one until it is reloaded.
Code & configuration
Copy-paste starting points. Replace example.com and the paths with your own, and test changes on staging before production.
Read the certificate the server is actually serving
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
| openssl x509 -noout -dates -subject
# notBefore=Apr 2 00:00:00 2026 GMT
# notAfter =Aug 31 23:59:59 2026 GMT
Check how many days are left, for a script or a cron job
exp=$(echo | openssl s_client -connect example.com:443 2>/dev/null \
| openssl x509 -noout -enddate | cut -d= -f2)
echo "expires in $(( ($(date -d "$exp" +%s) - $(date +%s)) / 86400 )) days"
Renewing is not enough on its own
# the certificate on disk is new, the running process still holds the old one
certbot renew --quiet
systemctl reload nginx # <- without this, nothing changes for visitors
How to prevent ERR_CERT_DATE_INVALID
An expired certificate is the most predictable outage there is: the date is known months ahead, nothing degrades on the way there, and then every visitor sees a full-page security warning at the same moment. An ordinary uptime check will not catch it either, because the server is up and answering perfectly well. Pulsetic watches certificate expiry alongside availability and alerts you by email, SMS, voice call, Slack, Discord, Telegram, or webhook with weeks of warning, which turns the whole thing into a scheduled task instead of a Saturday morning.
Learn how Pulsetic's SSL certificate monitoring detects this from the outside, across 15+ locations.
Sources and further reading
The specifications and vendor documentation this guide is written from, plus deeper reading on the parts it only summarises.
Frequently asked questions
-
What does ERR_CERT_DATE_INVALID mean?
It means the website's TLS certificate is outside its validity period as measured against your device's clock. Every certificate carries a start and end date, and the browser refuses the connection if the current time falls outside them. The certificate may be entirely legitimate in every other respect; it has simply expired, or has not started yet, and the browser treats that as disqualifying on its own.
-
How do I fix ERR_CERT_DATE_INVALID?
Check your device's date and time first, and turn on automatic time setting. A wrong clock is the most common cause when other people can reach the website perfectly well. If the clock is correct and the page fails on other devices too, the certificate really has expired and only the website owner can renew it. Do not click through the warning on any website where you enter information.
-
Why does the error appear on one device only?
Because a genuinely expired certificate fails for everyone simultaneously, so a single affected device points somewhere else. The likely explanations are a wrong clock, an outdated trust store on an older operating system, or security software substituting its own certificate for inspection. Comparing against a second device is the quickest way to establish which side the problem is on.
-
I renewed the certificate but the error continues. Why?
Almost certainly because the running server is still holding the old one. Renewal writes a new certificate to disk, but the web server loaded its certificate at startup and will keep serving that copy until it is reloaded or restarted. Check what is actually being served with
openssl s_clientrather than what is on disk. If you run several servers behind a load balancer, confirm every one of them received the new file. -
What is the difference between this and ERR_CERT_AUTHORITY_INVALID?
This error is about when the certificate was valid; the authority error is about who issued it. A date failure means the certificate has expired or not yet begun. An authority failure means the browser does not trust the issuer, which happens with self-signed certificates, an incomplete chain missing intermediates, or an internal CA the device has never been told about. They are separate checks with entirely different fixes.
-
How long do TLS certificates last?
Public certificates have been capped at 398 days since 2020, and lifetimes are getting shorter rather than longer. Let's Encrypt issues for 90 days deliberately, on the reasoning that a certificate needing renewal four times a year forces automation. The practical implication is that manual renewal is no longer a workable strategy, because a task that recurs quarterly and fails silently will eventually be missed.
-
Can I ignore the warning and continue?
Chrome lets you proceed, but you should not on any website where you type anything. The expiry check is part of what stops an attacker presenting an old certificate whose private key may have leaked since it was retired, and clicking through switches that protection off. For a login page, a payment form, or anything carrying personal information, treat the warning as a stop rather than a prompt, and wait for the owner to renew.
-
Why does my computer's clock cause a certificate error?
Because certificate validity is a comparison against the current time, and the browser has only your clock to compare against. Every certificate carries a "not before" and a "not after" date, and the browser checks that now falls between them. If your clock is wrong by days or years, a perfectly valid certificate looks either expired or not yet issued. This is why the very first step is to check the date on your own device rather than to assume the website has let something lapse.
-
What is the difference between ERR_CERT_DATE_INVALID and ERR_CERT_AUTHORITY_INVALID?
They fail different checks in the same validation. A date error means the certificate itself is outside its validity window, so it has expired or has not started yet. An authority error means the dates are fine but the browser does not trust whoever issued it, which happens with self-signed certificates, an incomplete chain, or an internal CA the device does not know about. One is about when, the other is about who.
-
Why do I get this only on one device?
That is the strongest possible hint that the certificate is fine and the device is not. A genuinely expired certificate fails for everyone at once, everywhere. A single affected device points at its clock being wrong, at an outdated trust store on an old operating system, or at security software substituting its own certificate for inspection. Check the date first, since it costs nothing and explains most of these cases.
-
Can I safely click through this warning?
Not on any website where you enter information. The date check is one of the few things preventing an attacker from presenting an old certificate whose private key may since have leaked, and clicking through disables exactly that protection. If you have confirmed your own clock is correct, the certificate really has expired, and the fix belongs to the website owner. Waiting is the right answer for anything involving a login or a payment.
-
How long are certificates valid these days?
Public TLS certificates have been capped at 398 days since 2020, and the industry is moving to shorter lifetimes still. Let's Encrypt issues for 90 days by design, precisely to force automation, since a certificate you must renew four times a year cannot survive on someone remembering to do it. The practical consequence is that manual renewal is no longer viable: anything not automated will eventually expire on a weekend.
Trusted by teams at companies around the world
-
Catch the next outage before your visitors do.
2-minute setup · Cancel any time
-
No credit card needed