SSL/TLS certificate checker.

Check a site's SSL/TLS certificate, expiry date, certificate chain, SANs and issuer, plus which TLS versions the server accepts and the cipher it negotiates. This tool actually connects to the host, so what you see is what a client gets.

Connected to 104.154.89.105:443 as wrong.host.badssl.com · connect 101.9ms · handshake 207.5ms JSON · text

Chain Trusted Verified against the system root store
Hostname Mismatch wrong.host.badssl.com
Expires 40 days 2026-10-26T20:03:01Z
Negotiated TLS 1.2 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

Connection

Protocol
TLS 1.2
Cipher
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
ALPN
http/1.1
OCSP staple
absent

Protocol support one handshake per version

TLS 1.0yes
TLS 1.1yes
TLS 1.2yes
TLS 1.3no

Certificate chain 3 presented

  1. leaf

    *.badssl.com

    40d left
    Issuer
    YR2 (Let's Encrypt)
    Valid
    2026-07-28T20:03:02Z → 2026-10-26T20:03:01Z
    Key
    RSA 2048 bit
    Signature
    SHA256-RSA
    Serial
    65BE17B359D30FCA59459F9893231C1D87D
    SHA-256
    688F99185E12A494D3910CE060532826A35FE02476E17E9BAD2F68E923847CA3
    SANs
    • *.badssl.com
    • badssl.com
    CRL
    http://yr2.c.lencr.org/126.crl
    CT logs
    2 embedded SCTs
  2. intermediate

    YR2 (Let's Encrypt)

    717d left
    Issuer
    Root YR (ISRG)
    Valid
    2025-09-03T00:00:00Z → 2028-09-02T23:59:59Z
    Key
    RSA 2048 bit
    Signature
    SHA256-RSA
    Serial
    4EBD24947E24D394802D84A52FD5B319
    SHA-256
    238B85A0099C65B970477D5724F1A1D475CE5058CFFE4EFA8733899BDB863C47
    CRL
    http://yr.c.lencr.org/
  3. intermediate

    Root YR (ISRG)

    2178d left
    Issuer
    ISRG Root X1 (Internet Security Research Group)
    Valid
    2026-05-13T00:00:00Z → 2032-09-02T23:59:59Z
    Key
    RSA 4096 bit
    Signature
    SHA256-RSA
    Serial
    F24B6D17F9D9AD7CB1C9FEA78782699F
    SHA-256
    072639D0B140D5BFFAE16AD9C3F6CC6086040621F51EE61A6D46A8915C07CF76
    CRL
    http://x1.c.lencr.org/

About this tool

This server opens a TCP connection to the host and port you give it, performs a TLS handshake using the SNI name (the host by default), and reports what the server sent back. The chain is then verified against this machine's root store and the hostname is checked against the leaf's subject alternative names. Four extra short handshakes probe whether the server accepts TLS 1.0 through 1.3 individually. It is a live connection, not a certificate transparency search, so it shows exactly what a client sees today.

What the SSL checker reports

CheckWhy it matters
Expiry dateDays left on the leaf certificate and on every intermediate. Under 14 days is flagged. An expired intermediate takes every site behind it down at once.
Certificate chainEvery certificate the server sent, labelled leaf, intermediate or extra, and whether the chain builds to a trusted root. A missing intermediate is the usual cause of "works in Chrome, fails in curl". See certificate chains explained.
Hostname matchWhether the name you asked for appears in the SANs. A mismatch means the wrong certificate is being served, often a default virtual host.
SANsEvery name the certificate covers, including wildcards. Handy for spotting a forgotten www.
Issuer and keyWho signed it, the key type and size (RSA 2048, ECDSA P-256 and so on) and the signature algorithm. SHA-1 signatures and RSA under 2048 bits are rejected by modern clients.
TLS versionsWhich of TLS 1.0, 1.1, 1.2 and 1.3 the server still accepts. 1.0 and 1.1 are deprecated and fail PCI DSS.
Cipher and ALPNThe cipher suite negotiated with a modern client and whether h2 (HTTP/2) or h3 is offered via ALPN.
OCSP stapling and CTWhether a fresh revocation response is stapled to the handshake, and how many certificate transparency SCTs are embedded.

Common SSL certificate problems

Check when an SSL certificate expires

The Expires tile is the leaf certificate's days left; the chain list below it shows the same for every intermediate, which matters because an intermediate expiring takes down every site signed under it at once, and monitoring that only watches the leaf will not see it coming. Anything under 14 days is flagged. If you run more than one edge or load balancer, check each one separately by putting its IP address in Host and the site name in SNI: the most common expiry outage is a renewal that ran fine and was deployed to all but one of them. For a domain-wide view, the domain health checker includes the same expiry check alongside DNS, HTTP and email.

Check which TLS versions a server supports

The Protocol support grid is four extra handshakes, each offering exactly one version, so "yes" under TLS 1.0 means the server really completed a TLS 1.0 handshake, not that it advertised something. Old load balancers and appliances are the usual reason 1.0 and 1.1 are still on years after the application servers behind them were fixed. Both are deprecated (RFC 8996), fail PCI DSS, and modern browsers refuse them, so there is rarely a reason to keep them. A server that offers 1.2 but not 1.3 is missing the faster handshake and forward-secret-only cipher suites; see TLS 1.2 vs TLS 1.3 for what changes when you turn it on.

Testing with a different SNI

Setting a different SNI is handy for testing a new certificate on a shared IP before DNS is moved, or for checking the default certificate a server presents when no name matches. Put the load balancer's address in Host and the site name in SNI.

Examples

From the command line

curl "kirkdiamond.com/tools/tls?host=example.com" gives a plain-text report; add &format=json for structured output, &port= and &sni= as needed. Only public hosts can be inspected, and nothing about the connection is stored.