SSL Certificate Expiry: How to Prevent Unexpected Downtime
An expired SSL certificate is one of the most common — and most preventable — causes of website downtime. When your certificate expires, browsers show a scary warning page that blocks users from accessing your site. No revenue, no trust, no traffic.
Why SSL Certificates Expire
SSL/TLS certificates have a fixed validity period, typically 90 days (Let's Encrypt) or 1 year (commercial CAs). This is by design — shorter lifetimes reduce the risk window if a certificate's private key is compromised.
The problem? Renewals are easy to forget, especially when:
- Auto-renewal fails silently (DNS changes, server migration)
- The person who set it up has left the team
- You're managing certificates across multiple domains
- Wildcard certificates cover subdomains you forgot about
The Real Cost of an Expired Certificate
When your SSL certificate expires:
- Chrome, Firefox, Safari all show a full-page warning
- Most users leave immediately — they don't click "Advanced → Proceed"
- API integrations break — clients that verify certificates will reject connections
- SEO rankings drop — Google penalizes insecure sites
- Payment processing stops — PCI DSS requires valid certificates
How to Monitor SSL Expiry
Automated Monitoring
Set up SSL monitoring that checks your certificate daily and warns you at multiple intervals:
- 30 days before expiry — plenty of time to investigate
- 7 days before — urgent, needs attention this week
- 3 days before — critical, act now
- 1 day before — emergency
What to Check Beyond Expiry
Good SSL monitoring also validates:
- Certificate chain — intermediate certificates must be properly configured
- Domain match — the certificate must cover your exact domain
- Protocol version — TLS 1.2+ is required (TLS 1.0/1.1 are deprecated)
- Key strength — RSA 2048-bit or ECDSA 256-bit minimum
Automating Renewals
Let's Encrypt + Certbot
For Let's Encrypt certificates, set up automatic renewal:
# Test renewal
sudo certbot renew --dry-run
# Add to crontab for automatic renewal
0 3 * * * certbot renew --quiet --post-hook "systemctl reload nginx"
Commercial Certificates
For paid certificates, most providers offer auto-renewal if: - Your payment method is current - Domain validation email is accessible - DNS records haven't changed
Best Practices
- Monitor all domains — including staging, API subdomains, and CDN endpoints
- Set up multiple alert channels — email + Slack/Telegram for redundancy
- Document your certificate inventory — know what's where and when it expires
- Test renewal before it's urgent — run
certbot renew --dry-runmonthly - Use monitoring as a safety net — even with auto-renewal, things can fail
Conclusion
SSL expiry is a solved problem — if you have monitoring in place. A 2-minute setup now prevents hours of downtime and thousands in lost revenue later.