What to Monitor Besides SSL Certificate Expiry
Expiry is only one failure mode. Track issuer, chain, SANs, protocol, and regional mismatches to catch real TLS outages early.
Certificate expiry is the loudest failure... but it's not the only one that takes sites down.
If you only alert on "days until expiry," you'll miss a bunch of real-world TLS problems: wrong certificate rolled out in one region, chain changes that break old clients, unexpected issuer changes, protocol regressions, or a renewal that "works" but serves a different SAN set.
This guide is a checklist of what else to monitor so your next incident isn't a surprise.
1) Validity right now (not just "expires in X days")
Monitor:
isValidNow(or equivalent status)- handshake success/failure reason
- clock skew edge cases (rare, but real)
Why it matters:
- A cert can be not yet valid (bad deployment timing) or fail validation due to chain issues, even if expiry is far away.
What to alert on:
- any handshake failure
- validity = false
2) Issuer changes (unexpected CA)
Monitor:
issuer(CN / organization)- CA chain root/intermediate fingerprints if available
Why it matters:
- Renewals can switch CAs (or intermediates). That can break:
- older enterprise devices
- pinned trust stores
- compliance expectations
Alert when:
- issuer changes compared to baseline
Tip:
- Treat issuer change as warning, not immediate outage — but you want eyes on it.
3) Certificate chain / intermediate changes
Monitor:
- intermediate CNs (or chain fingerprints)
- chain length differences
Why it matters:
- A new chain can cause validation failures in some environments.
- "It works on my machine" becomes "it fails in customer's old Java."
Alert when:
- chain differs from last known good
- chain validation fails in any region
For a deep dive on this topic, see Certificate Chain Changes: Why Renewals Sometimes Break Clients.
4) Subject + SAN set (the "wrong cert" detector)
Monitor:
subjectCN- SAN entries and their count (
sanCount) - whether the target host is covered by SAN
Why it matters:
- Classic outage: renewal deploys a cert for another hostname.
- Or SAN list loses a needed wildcard/subdomain.
Alert when:
- SAN set changes
- host not covered by SAN
5) Protocol / cipher regressions
Monitor:
- negotiated
protocol(TLS1.3 vs TLS1.2) - optional: cipher suite (if you collect it)
Why it matters:
- A config change can silently drop TLS1.3, or disable ciphers some clients require.
- Security teams care; customers care when it breaks.
Alert when:
- protocol downgrades (e.g., TLS1.3 → TLS1.2) unexpectedly
- handshake fails only for some regions/edges (often tied to config rollout)
6) Regional mismatches (multi-CDN, edge routing, partial rollouts)
Monitor:
- per-region certificate metadata:
- issuer
- subject
- expiresAt
- SAN count
- quorum / majority behavior
Why it matters:
- Region A routes to a different edge than Region B.
- One edge has the old cert, another has the new cert.
- You get intermittent failures that are impossible to reproduce from one location.
Alert when:
- regions return different issuer/subject/expiresAt
- quorum says "healthy" but one region is "broken" (decide if you want warnings vs hard alerts)
7) Redirect / endpoint behavior that changes TLS target
Even for "TLS monitoring," the real client journey may hit:
- apex domain → www
- HTTP → HTTPS redirect
- region-specific redirects
Monitor (if you collect evidence):
- redirect chain hostnames
- whether final host differs from input
Why it matters:
- You might be monitoring
example.com, but users land onwww.example.comwhich has a different cert.
Alert when:
- final hostname changes unexpectedly
- redirect chain changes (especially to a new domain)
A simple alerting policy that works
-
Hard alerts
- handshake fails in 2/3 regions (quorum broken)
- host not covered by SAN
- certificate is expired / not yet valid
-
Warnings
- expires within 14 days
- issuer changed
- chain changed
- protocol downgraded
- 1 region differs (partial rollout)
For detailed webhook implementation patterns, see Webhook Alerting Patterns for SSL Expiration and TLS Failures.
Practical implementation notes
- Store a small baseline per host:
- issuer, subject, expiresAt, SAN hash/count, protocol
- Compare current results to baseline
- When something differs, attach evidence (region + fields changed) to the alert
If you want this as JSON (API-first)
A good TLS monitoring response should include (at minimum):
- overall status + quorum
- per-region TLS status
- expiresAt + daysUntilExpiry
- issuer + subject
- protocol
- SAN count (or SAN coverage boolean)
NetDiag's SSL Certificate Monitoring provides all of these fields out of the box, with multi-region checks and webhook integration.
Related articles
- Webhook Alerting Patterns for SSL Expiration and TLS Failures — dedupe, thresholds, quorum, escalation, and payload design
- Certificate Chain Changes: Why Renewals Sometimes Break Clients — what to detect, why some clients fail, and how to alert safely