SSL Certificate Checker
Opens a real TLS handshake to the host on port 443 with the hostname sent as SNI, then reports the certificate it was presented, how many days remain, and the protocol version and cipher suite that were negotiated.
Valid here does not mean valid for your users
The handshake deliberately does not abort on a verification failure, so you still get the details on a host whose chain is broken — the case you most need to look at. So the validity verdict is a separate fact from the certificate beside it, and it is a verdict against one trust store: the CA bundle this server ships with.
- Your users do not use that store. A browser has its own, Windows has its own, a Java application has a
cacertsfile last updated during an upgrade, and an appliance may carry a bundle from years ago. A newer CA can validate here and fail on older clients; an internal PKI certificate always looks untrusted here and is trusted where it matters. - Revocation is not checked. No OCSP, no CRL — so a certificate revoked this morning still reports as valid with days remaining.
- The hostname is not matched against the SANs. That comparison is yours to make from the SAN list. A certificate cryptographically impeccable for the wrong name is the most common TLS error users see.
You checked one endpoint, and the host is probably several
- One node answered, not the service. The connection lands on whichever address DNS returned here, and behind a load balancer or an anycast CDN that is one node of many. The expired certificate on node three, the node still presenting the old chain, the regional edge your automation missed — none are visible from one clean check. That is why certificate monitoring belongs in a scheduled job over every endpoint, not in a page you visit when somebody complains.
- The check is fixed to port 443. A management interface on 8443, LDAPS on 636 or SMTP STARTTLS on 587 is out of scope — and those are the certificates nobody watches, because they break quietly instead of taking a website down.
- The hostname is sent as SNI. A server hosting many names returns a different certificate for each, so you see the one for that name and checking the wrong name tells you about the wrong service.
Negotiated is not allowed
TLS picks the best suite both ends support, so TLSv1.3 proves the server can do TLS 1.3 and says nothing about whether it will still negotiate TLS 1.0 with a client that asks. What the server accepts at its worst is the question a compliance review is asking, and answering it means handshakes with deliberately limited clients, which this tool does not attempt. Same for the cipher: one negotiated suite is not the accepted list.
Certificate fields
On days remaining: public certificate lifetimes have been shortening for years and still are, which changed what a renewal process has to be. A yearly calendar reminder worked at three years and does not now. If renewal is manual anywhere in your estate, that is the finding — not the days left on this one.
When to use something else
For an estate rather than a host, and on a schedule, ssl-cert-checker checks many hosts and ports and exits non-zero so cron or CI can act on it, and f5-cert-audit covers the certificates on a BIG-IP — the ones most often missed, because they are in nobody's web inventory.
For a judgement on the configuration rather than a reading of it, the tls-configuration-review prompt is the right tool, and crypto-policy-checker audits what devices are configured to permit instead of what one handshake chose. For where this is heading, pqc-migration-engineering and crypto-agility cover being able to change algorithms on schedule rather than in an emergency.