"SSL Certificate Monitoring: Why 'Auto-Renew' Isn't Enough"
"It auto-renews" is an assumption, not a guarantee
Let's Encrypt and similar services made SSL certificates free and largely automated, and that's genuinely a good thing — but "automated" isn't the same as "guaranteed to work." Renewal jobs fail silently more often than teams expect:
• A cron job for `certbot renew` gets removed or broken during a server migration.
• A firewall or rate-limit change quietly blocks the renewal's validation step.
• A new subdomain gets added to the app but never added to the certificate's renewal config.
• The renewal succeeds, but the web server never gets reloaded to actually use the new certificate.
In every one of these cases, nothing alerts you. You find out when a customer sees a browser security warning, or when an API integration starts failing TLS verification.
What certificate monitoring actually checks
A proper SSL monitoring check doesn't just ask "does this domain have a certificate" — it connects to the live site the way a browser or API client would and checks:
• **Expiry date** on the certificate actually being served right now (not what a config file says should be happening).
• **Days remaining**, so you get warned with real lead time — 30, 14, and 7 days out is a reasonable default.
• **Certificate chain validity** — a missing or misconfigured intermediate certificate can break trust even with a technically-not-expired certificate.
Setting up alerts that give you time to act
The point of certificate monitoring isn't to tell you a cert expired — by then it's an incident. It's to tell you with enough runway that fixing it is a five-minute task during business hours instead of an emergency at 2am. Multiple staggered alerts (30/14/7 days) work better than a single warning, since a missed first alert (out of office, busy week) still leaves a second and third chance to catch it.
CloudStats checks live certificate status daily across every domain you add as part of [SSL certificate monitoring](/features/ssl-certificate-monitoring), independent of whatever renewal automation you already have — because the whole point is not trusting that automation blindly.