SSL Certificate Checker

SSL certificate checker: expiry, chain, and TLS version

Via server proxyDebugging07Network & Web

What is SSL Certificate Checker?

This SSL certificate checker opens a TLS connection to the target and reads the full certificate chain, showing the subject, issuer, validity window, and days remaining at every level, along with the negotiated TLS version and cipher suite and the reason behind any chain validation failure. Reading a certificate requires completing a handshake, so this check runs on this site's server.

How to use SSL Certificate Checker

  1. 1Enter a domain name, or host:port when the service runs on a non-standard port.
  2. 2Click Check to see the remaining validity and the certificate chain.
  3. 3If chain validation fails, work through the reported reason; a missing intermediate certificate is by far the most common cause.
  4. 4Confirm that the SAN list covers every domain you actually serve.

How do I do this in code?

Use the tool above for one-off work; for anything you repeat, move it into a script or your project.

# Show the validity dates and subject
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
  | openssl x509 -noout -dates -subject

# Check whether the certificate chain is complete
openssl s_client -showcerts -servername example.com -connect example.com:443 < /dev/null

Common errors and how to fix them

SymptomCauseFix
The browser reports an untrusted certificate even though the certificate has not expiredThe server is not sending the intermediate certificate, so the browser cannot build a complete chain up to a trusted root.Concatenate the intermediate certificate with the server certificate into a fullchain file and point ssl_certificate in Nginx at that file.
A SAN mismatch appears after switching to a new domainThe new domain is not present in the SAN list of the certificate.Reissue the certificate with every domain you plan to serve listed in the SAN extension. Modern browsers no longer consult the CN field at all.

Frequently asked questions

How can this tool read details from an expired certificate?+

The handshake deliberately continues even when validation fails. If the connection were simply rejected, you would never see critical details such as how long ago the certificate expired. The validation outcome is reported separately as a chain validation failure.

How do I renew a certificate automatically before it expires?+

Use an ACME client such as certbot, acme.sh, or lego on a scheduled job, and reload the service after each renewal. It is also worth monitoring the days remaining and alerting at a threshold of around 15 days, which leaves room to step in manually if the automation breaks.

Related tools

All tools