Skip to main content

SSL Certificate & Expiry Monitor

Read any site's certificate off a live TLS handshake, with a days-to-expiry countdown

EVT·T212
Live TLS Handshake

About the SSL Certificate & Expiry Monitor

Almost every certificate outage is the same outage: nobody was watching the countdown. This tool opens a real TLS connection to the host you name and reads the certificate the server actually presents — not a cached database record, not a certificate-transparency log entry that may describe a certificate never installed.

From that single handshake it reports the issuer, the exact validity window with a days-to-expiry countdown, every Subject Alternative Name the certificate covers, the negotiated protocol and cipher, and the chain the server sends. Then it runs the failure modes that actually take sites down: hostname not covered, self-signed, missing intermediate (works in Chrome, breaks in curl and mobile), weak SHA-1 signatures, undersized RSA keys, and a chain that will not verify against the public trust store.

Because the check is a handshake rather than a database lookup, it works on any TLS port — mail on 465 or 993, an admin panel on 8443 — and it sees a certificate the moment you install it. Nothing about the hosts you check is stored beyond a ten-minute result cache. Pair it with our HTTP Security Grader for headers and DNS Propagation Checker for the record behind the name.

Methodstream_socket_client TLS · openssl_x509_parse
ChecksExpiry · SAN coverage · chain · protocol
Last reviewed2026-08-25 by Dennis Traina
A pasted https:// URL works too. www.example.com and example.com are separate checks.
Days Until Expiry
Certificate Health
Issued By
Negotiated
Findings
Certificate Detail
Names This Certificate Covers
Full Chain — Every Link and Its Own Expiry
The full chain visualization requires subscription
SAN Coverage Audit

Paste the hostnames you expect this certificate to cover — one per line — and each is graded against the SAN list, wildcards included.

The SAN coverage audit requires subscription
Expiry Watchlist
The multi-domain expiry watchlist requires subscription
Renewal Calendar

Export renewal reminders at 30, 14 and 7 days before expiry for every host on your watchlist.

The renewal calendar export requires subscription
Sign up free to save your history
137 Foundry — custom app building studio

How to Use the SSL Certificate Checker

Enter the hostname exactly as clients reach it — TLS certificates are matched against the name in the request, so example.com and www.example.com are genuinely separate checks and one can be broken while the other is fine. Leave the port on 443 for a website, or switch it for a mail or admin service. The check opens a real handshake from our server, so it reflects what a visitor gets right now, including a certificate you installed thirty seconds ago.

Read the days-to-expiry hero first, then the findings list. The health grade beside it is not just expiry: it folds in hostname coverage, chain completeness, signature algorithm, key size and protocol support, because a certificate with 300 days left can still be completely broken for half your clients.

Expiry Is the Symptom — Failed Automation Is the Disease

When a certificate expires in production, the certificate is almost never the problem. The problem is that renewal has been failing quietly for weeks. Certbot and its equivalents attempt renewal at 30 days remaining and retry twice daily, so a certificate showing 12 days left has already failed roughly 36 renewal attempts. The usual causes are worth knowing by heart: the HTTP-01 challenge path /.well-known/acme-challenge/ now redirects to HTTPS or is swallowed by an application router; the DNS-01 credential rotated; a firewall rule started blocking inbound port 80; or the renewal cron ran in a container that no longer exists. Treat any reading under 30 days on an automated certificate as an alarm, not a countdown.

Why the Common Name No Longer Counts

Certificates carry two places a hostname can appear: the legacy Common Name in the subject, and the Subject Alternative Name extension. Since Chrome 58 shipped in 2017, browsers ignore the common name entirely and validate against SANs only — a change that quietly broke a generation of internal certificates. That is why this tool lists every SAN and tells you which one matched. Two wildcard rules catch people out constantly:

  • A wildcard covers exactly one label. *.example.com matches www.example.com but not a.b.example.com.
  • A wildcard does not cover the bare domain. *.example.com does not match example.com; the apex needs its own SAN, and most CAs include it — but not all do.

The Missing Intermediate: The Bug That Only Some People See

A publicly trusted certificate is signed by an intermediate CA, which is in turn signed by a root in the client’s trust store. Your server is responsible for sending the leaf and the intermediate; only the root is expected to be local. When an admin installs just the leaf, desktop Chrome and Firefox often still work — they cache intermediates from other sites and can fetch a missing one through the certificate’s Authority Information Access extension. Almost nothing else does. Java clients, Python requests, curl, older Android, and payment or webhook callers all fail with an unable-to-get-issuer error. The symptom is unmistakable: “the site is fine in my browser but the API integration can’t connect.” The fix is to install the fullchain file your CA supplies rather than the leaf-only cert.

Reading the Protocol and Cipher Line

The negotiated line shows what our client and your server agreed on, which is the best both support. TLS 1.3 is the modern target: it completes the handshake in one round trip instead of two, and it removed every cipher suite without forward secrecy from the specification, so a TLS 1.3 connection cannot be misconfigured into a weak cipher. TLS 1.2 remains perfectly acceptable and is still required for a long tail of older clients. TLS 1.0 and 1.1 were deprecated by RFC 8996 in 2021 and disabled in every major browser — note that this tool reports only 1.2 and 1.3, because our own OpenSSL build refuses to speak the deprecated versions at all and therefore cannot honestly test whether your server still offers them.

Certificate Lifetimes Are Collapsing — Plan for It

Maximum certificate lifetime has fallen repeatedly: 39 months, then 825 days, then 398 days in September 2020, with the CA/Browser Forum agreeing in 2025 to a phased reduction that ends near 47 days. Each cut narrows the window in which a stolen private key stays useful, and each one makes manual renewal less viable. The practical consequence for anyone running more than a couple of hosts: automate issuance with ACME, and monitor the result independently of the tool that issues it. A renewal system that reports success while serving an old certificate is a real and common failure — which is exactly why an external handshake check is worth running.

What This Tool Does Not Check

It does not query revocation status. OCSP and CRL lookups are separate protocols, and the browser ecosystem has largely moved away from live OCSP toward pushed lists such as Firefox’s CRLite and Chrome’s CRLSets, so a live OCSP result would not reflect what users experience anyway. It also does not evaluate HTTP security headers, HSTS preloading, or mixed content — run the HTTP Security Grader for those. If the hostname itself is not resolving the way you expect, start with the DNS Propagation Checker. Browse all Dev & Tech tools for more.

Frequently Asked Questions

How many days before expiry should I renew an SSL certificate?

ACME clients such as Certbot renew at 30 days remaining by default, and that is the right target. If you ever see fewer than 14 days left on an automated certificate, renewal is already failing silently — check the renewal timer and the HTTP-01 or DNS-01 challenge path rather than waiting.

What is a SAN and why does it matter more than the common name?

A Subject Alternative Name is an entry in the certificate listing a hostname it covers. Browsers have ignored the legacy common name field since Chrome 58 in 2017 and validate against SANs only, so a certificate whose CN says example.com but whose SAN list omits it will fail. A wildcard SAN such as *.example.com covers one label level: it matches www.example.com but not example.com or a.b.example.com.

My site works in Chrome but fails in a mobile app or curl — why?

That is the signature of a missing intermediate certificate. Desktop browsers cache intermediates from previous sites and can fetch them via the Authority Information Access extension, so they paper over the gap. Java, Python, curl, Android and most API clients do not, so they see an incomplete chain and reject it. Install the full chain file your CA provides, not just the leaf.

Does this tool check certificate revocation?

No. It performs a live handshake and validates the presented chain against the system trust store, expiry dates, hostname coverage, signature algorithm and key strength. Revocation status via OCSP or CRL is a separate lookup, and browsers themselves have largely moved to pushed revocation lists such as CRLite rather than live OCSP checks.

Why does a 90-day certificate lifetime keep getting shorter?

The CA/Browser Forum has been steadily cutting maximum lifetimes — 825 days, then 398 days in 2020, with a phased reduction toward 47 days agreed in 2025. Short lifetimes limit the damage window of a compromised key, and they make manual renewal impractical, which is the point: automate with ACME and monitor rather than diary-note a yearly reissue.

Honey-Do Tracker — home maintenance for landlords and property managers
137 Foundry — custom app building studio
137 Foundry — custom app building studio
Link copied to clipboard!