TLS check
@@domain@@
- Result
- @@result@@
- Reason
- @@reason@@
- Domain (RDAP)
- @@registration@@
A failed check says nothing about the certificate. Nothing here counts as expired.
Enter a domain to see when its certificate expires, who issued it, and whether browsers will trust it. Free, and no account needed.
Enter a domain above. You’ll get the expiry date, days left, issuer, chain and hostname, plus when the domain registration expires.
TLS check
@@domain@@
A failed check says nothing about the certificate. Nothing here counts as expired.
@@title@@
@@text@@TLS check
@@domain@@
First email if watched @@nextAlert@@
TLS check
@@domain@@
First email if watched @@nextAlert@@
TLS check
@@domain@@
First email if watched @@nextAlert@@
See every certificate in the chain Registration details for @@registered@@
On any machine with OpenSSL, this prints the expiry date (notAfter) of the certificate a server sends:
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null \
| openssl x509 -noout -enddate
The -servername flag matters: servers that host several sites pick the certificate by that name. More ways, including
curl and the browser, are in how to check SSL certificate expiry.
certbot renew --dry-run
shows whether it would succeed. Common failures: DNS moved, port 80 blocked for the HTTP challenge, or expired API credentials for
the DNS challenge.
Public TLS certificates are getting shorter. Since March 15, 2026, they can last at most 200 days; from March 15, 2027, 100 days; and from March 15, 2029, 47 days. Each step means more renewals, and more chances for one to fail quietly. Details are in 47-day SSL certificates: timeline and prep.
Let’s Encrypt also stopped sending expiry reminder emails on June 4, 2025, so a broken renewal no longer produces a warning in your inbox unless you set one up.
We resolve the domain, connect to port 443 from our checker, and complete a TLS handshake using the domain name, the way a browser would. We read the certificates the server sends, then disconnect. We don’t load the page, send any data or follow redirects.
The result describes that one connection. Sites with several servers, or a CDN with regional edges, can serve different certificates in different places.
Short answers about this check.
Yes. Check as many domains as you like, with no account. Monitoring with email alerts is free for up to 3 domains.
No. The check reads the certificate and its chain: dates, issuer, trust and names. It doesn’t scan for vulnerabilities or judge your server’s configuration beyond the TLS version it agreed to use.
Both. Chrome fetches a missing intermediate certificate by itself, and Firefox ships a list of known intermediates, so they cover for the server.
Most other clients don’t: curl, scripts, payment and webhook senders, many apps and monitoring tools. They fail until the server sends the full chain.
Our checker uses the root certificates bundled with Node.js, which come from Mozilla’s root store, the same list Firefox and many Linux systems use. A private or company root is reported as untrusted.
Unavailable means our checker didn’t answer in time; the registration details still show. Failed means we couldn’t complete a TLS connection: no DNS record, nothing listening on port 443, a firewall, or a server that doesn’t speak TLS.
Neither is a verdict on the certificate. We never show a failed check as expired.
No. The checker connects only to public domain names on port 443, and refuses addresses in private, internal or reserved ranges.
We don’t keep a history of your checks or tie them to you. Registry answers are reused for up to 12 hours so repeat lookups are quick, then deleted within a week, and like any web service our request logs are kept for a few days.
Expiry Watch checks the domain every day and emails you 30, 14, 7, 3 and 1 day before the certificate or the registration expires. Free for up to 3 domains.