Free SSL/TLS Certificate Expiry Checker
Checks SSL/TLS certificate expiry date, chain validity, and OCSP stapling against your live domain. Catches expiring certs before they break HTTPS and trigger outages.
- Certificate expiry date
- Chain validity
- OCSP stapling status

What you get for free
18 core security checks via this tool, passive scans, step-by-step remediation, security score on every result.
What Essential adds at $39/mo
+17 advanced checks, continuous monitoring, daily security score history, email alerts, GitHub SAST, board-ready PDFs, SOC 2 / ISO 27001 / PCI reports.
What is certificate expiry?
SSL/TLS certificates have finite lifetimes. Expired certs break HTTPS, trigger browser errors, and can halt critical traffic (APIs, webhooks, payments). Proactive monitoring prevents outages.
What this checker validates
- Days until expiry and exact notAfter date
- Chain validity and common trust issues
- OCSP stapling presence (when detectable)
How to avoid expiry incidents
- Automate renewals (ACME) and alerts at 30/14/7 days
- Use short‑lived certs with auto‑rotation to reduce risk
- Test full chain in staging before rollout
Implementation examples
Once you've identified the gap, applying the fix is straightforward. Here are the three configurations developers reach for most often.
Nginx (Certbot auto-renewal)
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
}
# /etc/cron.d/certbot
0 3 * * * root certbot renew --quiet --deploy-hook "systemctl reload nginx"Apache (Certbot auto-renewal)
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLUseStapling on
SSLStaplingResponderTimeout 5
</VirtualHost>
# /etc/cron.d/certbot
0 3 * * * root certbot renew --quiet --deploy-hook "systemctl reload apache2"Node.js (greenlock-express for ACME)
import GreenlockExpress from "greenlock-express"
import express from "express"
const app = express()
app.get("/", (_req, res) => res.send("ok"))
GreenlockExpress.init({
packageRoot: process.cwd(),
configDir: "./greenlock.d",
maintainerEmail: "ops@example.com",
cluster: false,
})
.ready((glx) => glx.serveApp(app))
// Certificates auto-renew ~30 days before expiry via the ACME client.Tool-specific questions
When should I renew?
Do I need OCSP stapling?
Built for the engineers who already have enough to fix.
Real-time results
Comprehensive checks
Step-by-step fixes
More free checks, for the rest of your surface.
Complete Security Scan
Pre-Pentest Security Scan
Security Compliance Checker
WAF Checker
Security Headers Test
TLS/SSL Security Checker
Go deeper on the same topic.
Certificate Validity
Certificate Expiry
Tls 1 3 Upgrade Guide
Frequently asked.
What is Barrion and how does it enhance website security?
How safe is Barrion to use for security testing?
What types of security issues does Barrion identify?
What specific security checks does Barrion perform?
What is Barrion's smart crawling?
How often does Barrion perform security scans?
Is Barrion suitable for security testing of all business sizes?
How does Barrion handle data security and privacy during security testing?
What if I'm not satisfied with Barrion's security testing service?
How does Barrion help with SOC 2, ISO 27001, NIS2, and other compliance frameworks?
Anything else? Email contact@barrion.io.
Run a full report on your site.
Free first scan covers every check, no signup needed. Sign up to save the report and turn on continuous monitoring.