SSL guide

How to Check SSL Certificate Expiration

To check when an SSL certificate expires, inspect the certificate served by your public hostname and read its valid until date, also called notAfter. Compare that timestamp with the current time, then check hostname match and certificate chain validity.

Use the free SSL checker for a one-time check without an account, your browser for a manual inspection, or OpenSSL for terminal diagnostics. Below are the steps and an example of how to read the result.

Check the live certificate in three steps

A renewed certificate in your hosting dashboard is not enough: visitors must receive it from the live HTTPS endpoint. Start with the exact hostname they use.

  1. Open the free SSL Checker and enter the hostname, such as example.com or api.example.com.
  2. Run the check. Read valid until and days remaining, then confirm hostname match and chain validity.
  3. Check www and other important subdomains separately. After renewal, repeat the check and confirm that the public expiration date has changed.
Open the SSL checker

How to read the expiration date

For example, imagine a check performed on October 14, 2026 at 12:00 UTC returns the dates below. The certificate expires on November 13 at 12:00 UTC, exactly 30 days later. This is an illustrative result, not a live check of example.com.

GMT in this output uses the same UTC offset as UTC. A browser may display dates in your local timezone. Use the full timestamp when comparing results, especially near expiration; a rounded days-remaining value is not an extra day of validity.

Illustrative certificate validity dates
notBefore=Aug 15 12:00:00 2026 GMT
notAfter=Nov 13 12:00:00 2026 GMT
  • Valid from / notBefore: the start of the certificate's validity period.
  • Valid until / notAfter: the end of that period. Renew and deploy before this deadline.
  • Days remaining: time until expiration, not a guarantee that hostname and trust checks pass.

What should you do with the result?

An expiration check and a complete certificate check answer different questions. A certificate with months left can still fail because it covers the wrong hostname or its chain is not trusted.

Certificate results and next steps
ResultWhat it meansNext step
More than 30 days leftNo immediate expiration warning; other checks still matter.Confirm hostname and chain checks, then monitor renewal.
30 days or lessThe certificate is approaching its renewal deadline.Confirm automatic renewal is working and assign someone to verify deployment.
7 days or less, or expiredLittle time remains, or the validity deadline has passed.Renew or reissue, deploy to the live endpoint, and check again.
Hostname mismatch or invalid chainThe expiration date may be fine, but certificate validation fails.Inspect SAN coverage and the server's intermediate certificates.
Timeout or handshake failureThe checker could not obtain a reliable certificate result.Investigate DNS, connectivity, and TLS configuration. Do not assume the certificate is expired.

Check SSL expiration in a browser

Open the HTTPS URL and use the site information control beside the address. Open connection or certificate details, select the website's certificate, and find its validity dates. Labels vary by browser and may say expires, valid until, or not after.

Notice the hostname in the address bar after redirects. If example.com redirects to www.example.com, you may be inspecting the destination certificate rather than the original one. Use a hostname-specific checker to inspect both.

If a browser blocks the connection, inspect the warning and certificate details where available. Do not bypass warnings or enter credentials just to test the site.

Check SSL expiration with OpenSSL

With OpenSSL installed, run the command below in Bash, macOS Terminal, or WSL. Replace example.com in both places. The input redirection shown here is shell-specific and is not PowerShell syntax.

The -servername option supplies SNI so the server can select the intended certificate. The -dates output includes notBefore and notAfter. Diagnostic messages are deliberately not hidden.

This command displays dates; it does not prove that hostname and trust validation succeeded. If no certificate can be read, investigate the connection error rather than treating missing output as an expired certificate.

Read the public certificate dates (Bash / WSL)
openssl s_client -connect example.com:443 -servername example.com </dev/null | openssl x509 -noout -dates

Check a local certificate file

For a PEM certificate file, use the first command to read its expiration date. The second tests whether it expires within 2,592,000 seconds (30 days).

For a successfully read certificate, -checkend returns zero when it will not expire within that window and nonzero when it will. File or parsing errors can also produce a nonzero exit code, so inspect diagnostics.

A local file check does not confirm what the server serves, nor validate the hostname or chain. Never upload or share a private key to check expiration.

Inspect a local PEM certificate
openssl x509 -in certificate.pem -noout -enddate
openssl x509 -in certificate.pem -noout -checkend 2592000

Why two checks can show different dates

Check that you are comparing the same hostname and the same certificate. A CDN may terminate public TLS while your origin server uses a different certificate. A load balancer or one edge location may still serve an older certificate after renewal.

Different DNS answers, IPv4 and IPv6 endpoints, or a corporate TLS-inspection proxy can also produce different results. Compare issuer, serial number or fingerprint, SAN domains, and expiration time to identify whether the certificates actually differ.

  • Check the root domain, www, and critical application subdomains individually.
  • Verify deployment at the component that terminates public TLS, not only at the origin server.
  • Use DNS records to investigate routing differences and HTTPS checks to investigate redirects or response failures.

If the certificate is already expired

Renew or reissue the affected certificate, install it with the required intermediate certificates, and reload or redeploy the service that terminates TLS. Then verify the public hostname again.

If the new date does not appear, investigate deployment and routing before requesting another certificate. Our recovery guide covers common renewal and deployment failures.

Fix an expired SSL certificate

Turn a one-time check into monitoring

A manual check is a snapshot. For production domains, monitor regularly, send alerts to someone who can act, and verify the public certificate after each renewal. Monitoring detects problems; it does not renew or install certificates for you.

During the free beta, Website Certs lets you add domains and monitor SSL, HTTPS, and DNS from one dashboard. Start with the hostname you just checked.

Catch the next renewal problem earlier

Create a free beta account and monitor your important domains.

Start monitoring for free

FAQ

How do I check the expiration date of an SSL certificate?

Enter the public hostname in the free Website Certs SSL Checker and read valid until and days remaining. You can also inspect certificate details in your browser or use OpenSSL to read notAfter.

Can I check SSL expiration without a server login?

Yes. The public checker inspects the certificate presented by a reachable HTTPS endpoint without access to your hosting account or private key. An internal-only service needs a check from a network that can reach it.

Does a future expiration date mean the certificate is valid?

Not by itself. The certificate must also be within its start date, cover the requested hostname, and pass trust validation. HTTPS availability is a separate check.

Why does my website still show the old expiration date after renewal?

The renewed certificate may not be deployed to the public TLS endpoint yet. Check your CDN, load balancer, web server, and any separate IPv4 or IPv6 endpoints. A renewed local file alone does not change what visitors receive.

Is SSL certificate expiration the same as domain expiration?

No. Certificate validity controls certificate acceptance for HTTPS. Domain registration expiry is managed through your registrar and is a separate renewal deadline.

Can I get email alerts before an SSL certificate expires?

Yes. Add the domain to Website Certs monitoring and configure an email notification channel. Verify that notifications reach the person responsible for renewal, and recheck the live certificate after deployment.

Technical references

Related Website Certs tools

Check your live certificate

Read the expiration date and certificate diagnostics without an account. Add monitoring during the free beta when you are ready to track the domain over time.