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 192.178.223.109:465 as smtp.gmail.com · connect 12.3ms · handshake 15.3ms JSON · text

Chain Trusted Verified against the Mozilla root store · check per client
Hostname Matches smtp.gmail.com
Expires 59 days 2026-12-30T19:09:07Z
Negotiated TLS 1.3 TLS_AES_128_GCM_SHA256

Connection

Protocol
TLS 1.3
Cipher
TLS_AES_128_GCM_SHA256
ALPN
none offered back
OCSP staple
absent

Protocol support one handshake per version

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

Certificate chain 3 presented

  1. leaf

    smtp.gmail.com

    59d left
    Issuer
    WE2 (Google Trust Services)
    Valid
    2026-10-07T19:09:08Z → 2026-12-30T19:09:07Z
    Key
    ECDSA P-256
    Signature
    ECDSA-SHA256
    Serial
    B67A5D14356F836C1290795FBF59B8F2
    SHA-256
    4DACA53C177FCEDFD7BED7F44B603EF8AA67B1DC08360531613F6872EEB066AF
    SANs
    • smtp.gmail.com
    CRL
    http://c.pki.goog/we2/64OUIVzpZV4.crl
    CT logs
    2 embedded SCTs
  2. intermediate

    WE2 (Google Trust Services)

    842d left
    Issuer
    GTS Root R4 (Google Trust Services LLC)
    Valid
    2023-12-13T09:00:00Z → 2029-02-20T14:00:00Z
    Key
    ECDSA P-256
    Signature
    ECDSA-SHA384
    Serial
    7FF32D6B409D15D5965B05873A7C72E0
    SHA-256
    9C3F2FD11C57D7C649AD5A0932C0F0D29756F6A0A1C74C43E1E89A62D64CD320
    CRL
    http://c.pki.goog/r/r4.crl
  3. intermediate

    GTS Root R4 (Google Trust Services LLC)

    453d left
    Issuer
    GlobalSign Root CA (GlobalSign nv-sa)
    Valid
    2023-11-15T03:43:21Z → 2028-01-28T00:00:42Z
    Key
    ECDSA P-384
    Signature
    SHA256-RSA
    Serial
    7FE530BF331343BEDD821610493D8A1B
    SHA-256
    76B27B80A58027DC3CF1DA68DAC17010ED93997D0B603E2FADBE85012493B5A7
    CRL
    http://c.pki.goog/r/gsr1.crl

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 the Mozilla root store (embedded in the binary, so the result does not depend on the server's operating system) 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"; the certificate chain checker turns that into a per-client verdict. 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.

Every parameter, the JSON field names, rate limits and ready-made CI checks are in the API and curl reference.