Guide
SSL expiry alerts thresholds, channels, and on-call
Design ssl certificate expiry alert ladders—30/14/7/1 thresholds, email vs webhooks, deduplication, and on-call routes that engineers act on before users notice.
Updated Jun 20, 2026 813 words
A useful ssl certificate expiry alert names the hostname, the days remaining, and the validation path—so on-call renews and reloads before social media screenshots replace your status page.
Incident commanders and platform leads inherit alert policies written years ago: single email thirty days out, nobody on rotation, no deduplication after successful renewal. When Let’s Encrypt moved to ninety-day lifetimes, those policies became noise or silence—both expensive.
SSL certificate expiry alert design spans threshold math, channel choice, ownership tags, and separation from domain registration pages. This pillar connects monitoring data to humans who can deploy fixes.
What this guide covers
Threshold ladders, notification channels, dedupe rules, escalation to chat and webhooks, and coordination with ACME automation. Does not replace stack-specific renewal guides; links them for the deploy half of the loop.
On-call engineers should read this before tuning PagerDuty routes. Agency leads should align client contacts so expiry emails reach engineers, not only billing inboxes that ignore PKIX detail.
Key concepts
Threshold ladder commonly uses 30, 14, 7, and 1 days before notAfter. Each threshold should fire once per renewal cycle per hostname so a renewed cert does not re-page the same week.
Channel fit: email for broad visibility and audit trails; Slack and Discord webhooks for teams that fix certs during business hours; HTTPS webhooks for custom ticketing.
Alert content must include hostname, days remaining, issuer summary, and whether the signal is TLS or registration. Vague subjects trigger wrong runbooks.
Severity mapping: seven-day warnings may route to platform chat; one-day warnings page on-call if the hostname is tier zero.
Negative confirmation after renewal—external verify passing—closes the loop better than assuming silence means health.
Document quiet hours per tier: marketing microsites may defer one day pages until morning business time, while payment gateways page immediately at the twenty-four-hour threshold regardless of timezone. Ssl certificate expiry alert policies should state those rules explicitly so new on-call engineers do not improvise under stress.
How to work through your portfolio
Classify hostnames into tiers with explicit escalation targets. Tier zero (checkout, auth) gets chat webhooks and one-day pages; tier two marketing sites may stop at email.
Document owners in the monitoring product, not only in Confluence. Rotations fail when alerts email a departed alias.
Test channels quarterly with a staging hostname deliberately enrolled near expiry (in a lab) or with vendor test notifications:
echo | openssl s_client -connect staging.example.com:443 -servername staging.example.com 2>/dev/null \
| openssl x509 -noout -enddate
Align ladder days with your change window policy. If deploys require five business days of CAB approval, thirty-day alerts are the minimum sane lead time.
Separate ssl certificate expiry alert streams for TLS vs RDAP registration so responders do not renew certs when the registrar invoice is the actual gap.
Wire post-renewal verification: after certbot or cloud manager success, automated or manual checks from /check before muting threads.
Integrate with SSL expiry monitoring API webhook patterns when tickets must open automatically.
Run an annual fire drill: mute non-production routes and force a synthetic near-expiry hostname to page tier-zero rotation. Capture whether on-call opened the correct stack runbook within fifteen minutes. Ssl certificate expiry alert quality improves when responders critique message bodies afterward—add issuer and hostname to templates if anyone guessed from subject lines alone. Finance-only mailing lists should receive registration alerts, not TLS pages, unless legal explicitly wants dual visibility.
Related guides in this silo
Channels
- Free SSL monitor with email alerts — baseline email setup.
- SSL monitor with Slack alerts — channel routing.
- SSL monitor with Discord webhooks — community and agency teams.
- SSL expiry monitoring API webhook — custom integrations.
Monitoring foundations
- SSL certificate expiration monitoring guide — what triggers alerts.
- Best SSL certificate monitoring practices — ownership and inventory.
- Hourly SSL certificate checks — cadence vs threshold interplay.
Combined clocks
- Domain and SSL expiry monitoring in one place — dual-signal alerting.
- Domain registration expiry monitoring (RDAP era) — separate registration pages from TLS alerts.
When to use automation
Manual calendar invites do not dedupe across SAN hostnames or survive ACME renewals. Products should enforce once-per-threshold logic and support multiple channels per account.
ssldays sends ssl certificate expiry alert email on all plans at 30, 14, 7, and 1 days, once per threshold per renewal cycle. Paid Starter and Pro plans add Slack and Discord webhooks for faster routing. Live TLS drives certificate signals; RDAP adds registration warnings where published.
Free supports 3 domains with daily checks; Starter covers 25 hourly; Pro handles 100 hourly. Pair scheduled watches with ad-hoc /check after deploys to avoid alert fatigue from stale thresholds.
Frequently asked questions
How do I stop alert storms after renewal?
Use monitors that dedupe per renewal cycle and verify external TLS before acknowledging. If storms persist, check for duplicate hostname entries with and without www.
Should registration and TLS share a Slack channel?
They can share a channel if message formatting distinguishes signal type. Separate routes reduce wrong fixes.
Are webhooks available on free plans?
ssldays provides email on free; Slack and Discord webhooks require paid Starter or Pro plans.
What belongs in the alert body?
Hostname, days to expiry, issuer, alert type (TLS vs domain), and a link to your runbook or live check tool.
Monitor this hostname on a schedule
Live certificate checks and renewal reminders — not guesswork from PEM files.