Security

SSL Checker

Inspect certificate chain, expiry and algorithm for any site.

Hostname host or host:port (default 443)
github.com:443
TLSv1.3 expires in 66d
Verdict
  • Certificate is valid for this host and not expired.
Subject?
github.com
Issuer?
Sectigo Public Server Authentication CA DV E36 — Sectigo Limited
Valid from
2026-07-03T00:00:00Z
Valid to?
2026-09-30T23:59:59Z
Signature algorithm?
ecdsa-with-SHA256
Public key?
EC 256 bits
Negotiated cipher?
TLS_AES_128_GCM_SHA256
Chain depth?
3
Hostname matches?
yes
Self-signed?
no
Subject Alternative Names?
  • github.com
  • www.github.com
Raw certificate (PEM)
-----BEGIN CERTIFICATE----- MIID7jCCA5SgAwIBAgIQcgEOA/SgZ/5OeWJmQwcY9jAKBggqhkjOPQQDAjBgMQsw CQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5T ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gQ0EgRFYgRTM2MB4X DTI2MDcwMzAwMDAwMFoXDTI2MDkzMDIzNTk1OVowFTETMBEGA1UEAxMKZ2l0aHVi LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABIWWMDSOi/1sMgquP4I/obBM 735wpzcIZi4fLeiBsToXVVSwjj4OPH+W6azHzxETM0gUP7raehddpJ8uwjqYsTij ggJ5MIICdTAfBgNVHSMEGDAWgBQXmagEwW/kLXCoChA9A9PpGrgmYzAdBgNVHQ4E FgQUEKU6Ytbv1gZWnty4gvzCe2hdPWkwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB /wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwSQYDVR0gBEIwQDA0BgsrBgEEAbIx AQICBzAlMCMGCCsGAQUFBwIBFhdodHRwczovL3NlY3RpZ28uY29tL0NQUzAIBgZn gQwBAgEwgYQGCCsGAQUFBwEBBHgwdjBPBggrBgEFBQcwAoZDaHR0cDovL2NydC5z ZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljU2VydmVyQXV0aGVudGljYXRpb25DQURW RTM2LmNydDAjBggrBgEFBQcwAYYXaHR0cDovL29jc3Auc2VjdGlnby5jb20wggEF BgorBgEEAdZ5AgQCBIH2BIHzAPEAdgDXbX0Q0af1d8LH6V/XAL/5gskzWmXh0LMB cxfAyMVpdwAAAZ8lTHVtAAAEAwBHMEUCIQCkpa0ZYNwsPiMRLHz+kk1QS/W9bg/8 4yNBVGkT289dNQIgMWLgxYp6vGJXJxyD3c1NI1aZsPA7GqyLSXaZLZHgKh0AdwDI o8R/x7OtuTVrAT9qehJt4zpOQ6XGRvmXrTl1mR3PmgAAAZ8lTHVhAAAEAwBIMEYC IQDsO+TR8EVfCiObBPoDLRKzKLQ/uorsebJ2aZDIejA9RgIhAJ6dp7FqCD93tQXX AF24pDIms1fX4dZ+VPzXGuD8u8t1MCUGA1UdEQQeMByCCmdpdGh1Yi5jb22CDnd3 dy5naXRodWIuY29tMAoGCCqGSM49BAMCA0gAMEUCIB0PC2GRSurxu8gCkSNsYxmw kAtCNfCvpXRiif8PhGkmAiEAzBH4AVYAtv1FsMrJabD9FYcAql0EteKafckH2exj Uag= -----END CERTIFICATE-----
What does each field mean?

Field reference

Subject

The Subject field identifies the certificate holder. Modern certificates rely on the CN (Common Name) plus Subject Alternative Names. Organization (O), Organizational Unit (OU), and Locality (L) are present for EV/OV certs and absent for plain DV (free) certs like Let's Encrypt.

Issuer

Identifies the CA that vouched for the subject. Browsers ship a list of trusted root CAs; certificates signed by an untrusted issuer (or self-signed) trigger NET::ERR_CERT_AUTHORITY_INVALID. Common public CAs: Let's Encrypt, DigiCert, Sectigo, GlobalSign, GoDaddy.

Subject Alt Names (SAN)

A single certificate can cover multiple hostnames via the SAN extension — typical for wildcard (<code>*.example.com</code>) or multi-domain (SAN) certs. Browsers ignore the Common Name and match only against SAN entries since 2017. If your hostname is not listed here, the certificate is invalid for that host.

Chain depth

A trust chain starts with the server's leaf cert, passes through one or more intermediate CA certs, and ends at a root CA in the browser's trust store. Depth 2 (leaf + 1 intermediate) is typical. Misconfigured servers often forget to send intermediates — clients then see "incomplete chain" errors.

Signature algorithm

Describes how the CA signed the cert. <code>sha256WithRSAEncryption</code> (RSA + SHA-256) is the safe default. <code>ecdsa-with-SHA256</code> uses elliptic curves — smaller keys, same security. <code>sha1WithRSAEncryption</code> has been broken since 2017 and is rejected by all major browsers.

Public key

The public half of the keypair. RSA 2048 bits is the practical minimum today; 3072+ for long-lived keys. EC P-256 is shorter (~256-bit equivalent strength) and faster. Anything below RSA 2048 or older than P-256 should be replaced.

Negotiated cipher

Describes encryption used for the actual data: key exchange (ECDHE), cipher (AES_256_GCM, CHACHA20_POLY1305), MAC (SHA384). Forward-secret cipher suites (ECDHE-*) are required by most security standards. CBC-based or RC4 suites are obsolete.

Hostname match

Even a perfectly valid certificate is rejected if the requested hostname is not in the SAN list. Wildcards match exactly one DNS label: <code>*.example.com</code> covers <code>www.example.com</code> but NOT <code>a.b.example.com</code> or the bare <code>example.com</code>.

Self-signed

A self-signed cert has the same Subject and Issuer. Browsers do not trust it by default — you would see "NET::ERR_CERT_AUTHORITY_INVALID". Fine for internal/staging environments where you control both server and client. For production, use Let's Encrypt (free) or a public CA.

Valid to (expiry)

Browsers reject expired certificates outright. Public-CA certs typically last 90–397 days. Set up auto-renewal: ACME / Let's Encrypt at 60 days remaining, commercial CAs at 30 days. Watch for the gradual industry shift to 90-day mandatory lifetimes by 2027.

Fully valid

All baseline checks passed: trust chain anchors at a browser-trusted root, hostname matches the SAN, the cert is within its validity window, and the signature algorithm is acceptable. This is the green-padlock state browsers display.

About this tool

SSL Checker opens a real TLS connection to your host, captures the certificate chain the server presents, and reports everything that matters: subject, issuer, validity dates, the full intermediate chain up to the trust anchor, signature algorithm, public key size, supported TLS versions and cipher suites, Subject Alternative Names, and OCSP stapling status. The check happens server-side from our Frankfurt host so you see exactly what a remote visitor sees — not what your browser cached.

A clean certificate is not just "the green padlock". We validate hostname matching against SANs (the legacy CN field is informational only, per RFC 6125), check that each link in the chain is signed by the next, verify that intermediates are presented in the right order (a common deploy mistake), confirm the leaf has not expired and is not yet valid, and warn if the leaf uses a weak signature (SHA-1) or undersized key (RSA < 2048 bits). All this in one HTTPS handshake.

When to use this tool

  • Pre-deploy verification. After provisioning Let's Encrypt or buying a commercial cert, confirm the chain is complete before pointing real users at it.
  • Expiration monitoring. Spot certs that will expire in the next 7/14/30 days and renew before alarms fire.
  • Mixed-content debugging. Find subdomains that present a different (or self-signed) cert from the main site.
  • Migration sanity checks. After moving to a new CDN or load balancer, verify the new cert and chain are what you expect.

What "chain incomplete" actually means

Browsers and OS trust stores ship a few hundred root CAs. Your leaf certificate is signed by an intermediate, which is signed by another intermediate or directly by a root. The web server must send the leaf + every intermediate up to (but not including) the root — Firefox and Chrome will try to fetch missing intermediates from the AIA extension, but iOS, older Android, and most non-browser TLS clients will reject the handshake. Our chain inspector tells you exactly which link is missing, so you can paste the right intermediate into your server config.

Frequently asked questions

My browser shows the padlock but your tool says "chain incomplete" — who is right?

Both. Modern desktop browsers patch incomplete chains by fetching missing intermediates over the AIA extension or from their own caches — the user sees a working padlock. But iOS Safari, many Android apps, curl, OpenSSL clients, and non-browser TLS libraries do not do this. If our tool says "incomplete" your site will fail on a non-trivial fraction of clients; fix it by serving the full chain from the server.

What is OCSP stapling?

A way for the server to attach a recent CA-signed proof-of-validity to the certificate during the TLS handshake — so the browser does not have to call out to the CA's OCSP responder on every connect. Stapling makes page loads faster and protects user privacy (the CA never learns which sites the user is visiting). Most modern web servers (nginx, Apache 2.4, Caddy) support it; many turn it on by default.

How often should I check?

Once a week is plenty for production. Let's Encrypt certs renew every 60–90 days, commercial certs every 12 months; either way an unnoticed expiry is the most common SSL failure mode. We cache results for 10 minutes so a quick re-check after a deploy gives immediate feedback. Pair this with an automated monitor (Uptime Kuma, StatusCake) for proactive alerts.

Why does the tool not validate against my private CA?

We use the standard public CA trust bundle (Mozilla's, which most operating systems also use). Private CAs — internal corporate roots, ACME-CA on a homelab — are not in any public trust store, so the chain validation will (correctly) flag them as untrusted. The certificate details (subject, dates, key size) are still reported; only the trust-anchor check fails.