SSL Certificate Checker
SSL certificate checker: expiry, chain, and TLS version
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
- 1Enter a domain name, or host:port when the service runs on a non-standard port.
- 2Click Check to see the remaining validity and the certificate chain.
- 3If chain validation fails, work through the reported reason; a missing intermediate certificate is by far the most common cause.
- 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
| Symptom | Cause | Fix |
|---|---|---|
| The browser reports an untrusted certificate even though the certificate has not expired | The 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 domain | The 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 toolsHTTP Status Codes
HTTP status code reference with likely causes and where to look
URL Parser
Break a URL into its components and query parameters
MIME Type Lookup
MIME type and file extension reference
User Agent Parser
Parse a User-Agent string into browser and OS details
CIDR Subnet Calculator
CIDR subnet calculator with membership checks
HTTP Header Analyzer
Inspect response headers and security header coverage