SSL Checker
Inspect the TLS certificate chain, expiry, protocols and cipher suites of any host and get a grade.
About the ssl checker
This tool connects to a host over HTTPS, retrieves the certificate chain it presents, and checks each link: whether the leaf certificate matches the hostname, whether it is currently within its validity window, and whether the chain leads to a root trusted by common browsers. A broken chain, where an intermediate certificate is missing, is a frequent cause of failures on some clients even when the certificate itself is fine.
It also negotiates and reports the TLS protocol versions and cipher suites the server supports. TLS 1.2 and 1.3 are current — TLS 1.3 was republished as RFC 9846 in July 2026, obsoleting RFC 8446 — while TLS 1.0 and 1.1 are formally deprecated by RFC 8996 and should be disabled, since they carry known weaknesses and have failed PCI DSS since June 2018. Forward secrecy, where each session uses a key that cannot later be derived even if the server's long-term private key is compromised, is checked separately from the protocol version, since an otherwise modern configuration can still offer static-RSA key exchange and lose the property entirely.
The overall grade weighs certificate validity, protocol and cipher configuration, and the presence of HSTS, which tells browsers to only ever connect to the host over HTTPS, closing the small window during a plain-HTTP-to-HTTPS redirect where a connection could otherwise be intercepted. The top grade requires TLS 1.3 to be offered, as an affirmative result rather than an absence of faults — and a scan that could not test protocols, because the TLS probe was unreachable, does not satisfy it either. We would rather tell you the check did not run than award a grade on the strength of nothing.
A high grade is not a one-time achievement, since certificates expire and cipher recommendations shift. If you use an ACME client, it should renew at roughly a third of the certificate's remaining lifetime — thirty days out on a ninety-day certificate — so a certificate inside thirty days of expiry usually means automation stopped running rather than that renewal is merely due.
Common questions
- What grade is good?
- A or A+ means TLS 1.2 and 1.3 only, forward-secret cipher suites, a complete and valid chain, and HSTS enabled. TLS 1.3 has to be positively observed for the top grade; a protocol check that could not run does not count in your favour.
- Is the chain order important?
- It should be leaf first, then intermediates, and the root should not be sent at all. Out-of-order chains are tolerated by TLS 1.3 clients, so we treat that as a minor issue, whereas a genuinely missing intermediate breaks trust on clients that cannot fetch it themselves.
- My certificate expires soon, what do I do?
- Renew it before the expiry date. If you use Let's Encrypt, the auto-renewal has likely failed silently; check the ACME client's logs for the actual error.
- Is TLS 1.0 really dangerous?
- It is formally deprecated by RFC 8996, fails PCI DSS compliance, and has known cryptographic weaknesses. It should be disabled on any server that still offers it.
- What does a missing intermediate certificate cause?
- Some clients will fail to build a trusted chain even though the leaf certificate itself is valid, because they cannot connect it to a trusted root without the intermediate the server should have sent.
What this tool checks (25 rules)
- tls.certificate.chain-incomplete — Certificate chain is missing an intermediate
- tls.certificate.chain-out-of-order — Certificate chain is not in the required order
- tls.certificate.expired — TLS certificate has expired
- tls.certificate.expiring-lt-30d — TLS certificate expires in under 30 days
- tls.certificate.expiring-lt-7d — TLS certificate expires in under 7 days
- tls.certificate.hostname-mismatch — Certificate does not cover the hostname
- tls.certificate.no-san — Certificate has no Subject Alternative Name
- tls.certificate.not-yet-valid — TLS certificate is not valid yet
- tls.certificate.self-signed — Certificate is self-signed
- tls.certificate.unreadable — Certificate could not be parsed
- tls.certificate.untrusted-root — Certificate does not chain to a trusted root
- tls.certificate.validity-too-long — Certificate is valid for longer than a public CA may issue
- tls.certificate.weak-key — Certificate uses a key that is too small
- tls.certificate.weak-signature-algorithm — Certificate is signed with a broken hash algorithm
- tls.certificate.wildcard-too-broad — Certificate uses an unusually broad wildcard
- tls.protocols.insecure-cipher — Server accepts a broken cipher suite
- tls.protocols.no-forward-secrecy — Some connections have no forward secrecy
- tls.protocols.no-tls12 — Neither TLS 1.2 nor TLS 1.3 is supported
- tls.protocols.no-tls13 — TLS 1.3 is not supported
- tls.protocols.probe-unavailable — Protocol and cipher support could not be tested
- tls.protocols.sslv2-enabled — SSL 2.0 is enabled
- tls.protocols.sslv3-enabled — SSL 3.0 is enabled
- tls.protocols.tls10-enabled — TLS 1.0 is enabled
- tls.protocols.tls11-enabled — TLS 1.1 is enabled
- tls.protocols.weak-cipher — Server accepts a weak cipher suite