ssl monitoring tls

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.

5 min read

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:

  • subject CN
  • 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 on www.example.com which 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