TLS check
@@domain@@
- Result
- @@result@@
- Reason
- @@reason@@
- Domain (RDAP)
- @@registration@@
A failed check says nothing about the certificate. Nothing here counts as expired.
Free tool
See every certificate a server sends, in order, and whether the chain reaches a trusted root. Free, no account.
@@label@@ @@label@@ @@label@@ @@label@@
TLS check
@@domain@@
A failed check says nothing about the certificate. Nothing here counts as expired.
@@title@@
@@subject@@
@@title@@
@@subject@@
@@title@@
@@subject@@
@@title@@
@@subject@@
@@title@@
@@issuer@@
Your browser didn’t let this page copy. Select the text and copy it yourself.
| Address | What it served |
|---|
Your site’s certificate is signed by an intermediate certificate, which is signed by a root certificate. Browsers and operating systems ship with a list of trusted roots. To trust your certificate, a client has to follow the signatures from it, through the intermediates, to one of those roots.
The server’s job is to send its own certificate followed by the intermediates. The root stays on the client. If an intermediate is missing, the client can’t make the link and the connection fails, unless the client fills the gap itself.
The chain shown is the one served by the address with the soonest-expiring valid certificate. Under it, Server addresses lists the addresses we checked, up to 4 IPv4 and 4 IPv6: one that sends a broken chain while the others are fine is marked there. A load balancer behind one address answers with one of its servers, so a bad one behind it may not show on a given day.
The server sends only its own certificate. Fix it by serving the full chain file your CA or ACME client provides. With certbot and
nginx, that means fullchain.pem, not cert.pem:
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; Hosting panels often have a separate “CA bundle” or “chain” field for the intermediates.
The chain ends in a root that isn’t in our checker’s trust store: usually a self-signed certificate, a company’s private CA, or a test setup. For a public site, replace it with a certificate from a public CA. Let’s Encrypt is free.
The site certificate is current but an intermediate in the chain has expired. This usually means an old bundle saved on the server. Download the current chain from your CA and serve that.
Not a chain problem, but often reported alongside one: the certificate doesn’t list the domain you visited. Issue one that does, or check that the domain points at the right server.
This prints every certificate the server sends, with its subject and issuer:
openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null Each certificate appears as a block, starting with “s:” (subject) and “i:” (issuer). The issuer of each should be the subject of the next. More in Fix “unable to get local issuer certificate”.
Something else? Send us a note, right from the page.
Yes, with no account. Monitoring with email alerts when a certificate breaks or nears expiry is free for up to 10 domains.
Browsers cover for it: Chrome downloads the missing intermediate, and Firefox ships a list of known intermediates.
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.
It doesn’t need to. Clients already have the root in their trust store, and sending it only adds bytes to every handshake. The result shows the root from the trust store when the chain leads to one.
Those in the copy of Mozilla’s root store bundled with Node.js, which our checker verifies the chain against. Private and company roots show as untrusted.
A chain that checks out here isn’t a browser’s verdict. Browsers apply their own root stores and rules, and this check doesn’t look at revocation or Certificate Transparency.
No. The checker connects only to public domain names on port 443, and refuses private, internal and reserved addresses.
Expiry Watch checks the domain every day and emails you if the certificate’s renewal looks late, or before the certificate or the registration runs out.