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 expired.badssl.com · connect 103.3ms · handshake 236.5ms JSON · text

Chain Untrusted x509: certificate has expired or is not yet valid: current time 2026-09-16T18:05:24Z is after 2015-04-12T23:59:59Z
Hostname Matches expired.badssl.com
Expires Expired 2015-04-12T23:59:59Z
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

    expired
    Issuer
    COMODO RSA Domain Validation Secure Server CA (COMODO CA Limited)
    Valid
    2015-04-09T00:00:00Z → 2015-04-12T23:59:59Z
    Key
    RSA 2048 bit
    Signature
    SHA256-RSA
    Serial
    4AE79549FA9ABE3F100F17A478E16909
    SHA-256
    BA105CE02BAC76888ECEE47CD4EB7941653E9AC993B61B2EB3DCC82014D21B4F
    SANs
    • *.badssl.com
    • badssl.com
    OCSP
    http://ocsp.comodoca.com
    CRL
    http://crl.comodoca.com/COMODORSADomainValidationSecureServerCA.crl
    CT logs
    0 embedded SCTs
  2. intermediate

    COMODO RSA Domain Validation Secure Server CA (COMODO CA Limited)

    879d left
    Issuer
    COMODO RSA Certification Authority (COMODO CA Limited)
    Valid
    2014-02-12T00:00:00Z → 2029-02-11T23:59:59Z
    Key
    RSA 2048 bit
    Signature
    SHA384-RSA
    Serial
    2B2E6EEAD975366C148A6EDBA37C8C07
    SHA-256
    02AB57E4E67A0CB48DD2FF34830E8AC40F4476FB08CA6BE3F5CD846F646840F0
    OCSP
    http://ocsp.comodoca.com
    CRL
    http://crl.comodoca.com/COMODORSACertificationAuthority.crl
  3. intermediate

    COMODO RSA Certification Authority (COMODO CA Limited)

    expired
    Issuer
    AddTrust External CA Root (AddTrust AB)
    Valid
    2000-05-30T10:48:38Z → 2020-05-30T10:48:38Z
    Key
    RSA 4096 bit
    Signature
    SHA384-RSA
    Serial
    2766EE56EB49F38EABD770A2FC84DE22
    SHA-256
    4F32D5DC00F715250ABCC486511E37F501A899DEB3BF7EA8ADBBD3AEF1C412DA
    OCSP
    http://ocsp.usertrust.com
    CRL
    http://crl.usertrust.com/AddTrustExternalCARoot.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 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.