Guide
Certificate inventory and expiry dashboards
Build an ssl certificate inventory monitoring view from live TLS handshakes, registrar dates, and alerts—without trusting stale spreadsheet notAfter rows.
Updated Apr 18, 2026 842 words
ssl certificate inventory monitoring succeeds when your dashboard shows the certificate strangers receive on each hostname—not a PEM path that nobody loaded after last night’s deploy.
Infrastructure leads are shopping for a single pane that answers how many names you expose, when each one expires, and which row turned red since yesterday. Finance wants renewal spend mapped to assets. Security wants proof that production, staging, and marketing subdomains did not drift apart silently.
The usual failure mode is an inventory built from ACME logs or vault exports. Those files age independently of CDNs, default SNI certificates, and forgotten microsites. A green spreadsheet row does not mean browsers see the same serial you renewed.
You will learn what belongs on a trustworthy inventory, how to validate rows with live TLS probes, and how alerting should behave when ownership spans dozens of teams.
What you are actually buying
Inventory tools fall into three buckets, and dashboards mix them at their peril.
Filesystem and secrets inventory reads PEM material from disk, Kubernetes secrets, or certificate managers. It is excellent for renewal pipeline health and terrible as the only customer-facing truth when TLS terminates elsewhere.
Live TLS presentation checks connect to public hostnames, complete a handshake, and read issuer, SAN coverage, chain completeness, and notAfter from what the internet actually receives. That is the row that should drive executive risk views.
Domain registration lifecycle data comes from RDAP where registries publish expiry. It prevents TLS renewals on a domain that will not revalidate next quarter. Some TLDs omit dates; your dashboard should mark those rows as unknown rather than fabricating certainty.
A mature ssl certificate inventory monitoring program ties hostname, served serial, registrar horizon, and last probe timestamp together. Wildcard and multi-SAN certificates share one deadline but still need per-host confirmation—see wildcard vs SAN expiry monitoring for coverage rules.
Evaluation checklist
Use these criteria when comparing monitoring products for portfolio dashboards.
-
Live vs on-disk source of truth. Require external handshake checks for every customer-facing hostname. Treat vault exports as supplementary, not dashboard-primary.
-
Per-hostname rows, not one row per invoice. A single cert object can serve twenty DNS names; inventory must explode coverage to each name you probe, with serial matching across hosts.
-
Registrar expiry alongside TLS expiry. RDAP-backed registration dates on the same row as certificate
notAfterexpose revalidation risk early. -
Threshold alerts with no spam. Escalation at 30, 14, 7, and 1 days, once per threshold per renewal cycle, keeps paging humane during long-lived certs.
-
Multi-site scale without per-host pricing games. Portfolios grow with acquisitions and micro-brands; caps should be explicit per plan tier.
-
Check cadence vs incident window. Daily sweeps miss Friday afternoon mistakes before Monday traffic; hourly checks shrink the blind spot for high-revenue properties.
-
Export and ownership metadata. Tags for team, environment, and renewal owner turn a date column into an actionable queue.
-
Diagnostic depth on failure. One-click live re-check, chain visibility, and links to runbooks beat a red dot with no context.
-
Webhook routing for operators. Paid tiers that fan out to Slack or Discord keep inventory changes inside existing on-call flows.
-
Baseline drift detection. Alert when served serial changes without a documented change window—often the first sign of mis-uploaded default certificates.
Sanity-check a vendor by probing a hostname you know serves a different cert than your vault:
echo | openssl s_client -connect www.example.com:443 -servername www.example.com 2>/dev/null \
| openssl x509 -noout -dates -serial -subject
If their dashboard never matched that serial, the inventory is decorative.
How ssldays fits
ssldays builds inventory rows from live TLS the server presents: issuer, SANs, chain trust, and expiry. Registration horizons use RDAP where published; rows note when a TLD withholds expiry.
Alerts fire at 30, 14, 7, and 1 days, once per threshold each renewal cycle. Email is included on every plan; Slack and Discord webhooks ship on paid Starter and Pro tiers.
Free covers 3 domains with daily checks—enough for a pilot dashboard on apex, www, and API. Starter raises the ceiling to 25 hostnames with hourly polling; Pro supports 100 at the same cadence. Teams running many brands pair this with monitor SSL certificates for multiple websites playbooks for grouping and ownership.
One-shot verification stays on /check without signup, so you can reconcile a suspicious dashboard cell before opening a renewal ticket.
Common mistakes when choosing a monitor
Treating Certificate Transparency as the inventory. CT logs help discovery but do not prove what terminates TLS today.
One nightly cron against a spreadsheet export. CSV jobs rot when DNS changes faster than the export pipeline—compare with check multiple domains SSL expiry CSV limitations before trusting batch files alone.
Collapsing wildcards to a single green icon. Subdomains that hit a stale default cert stay red only when each name is probed.
Ignoring registrar dates on TLS-only tools. A renewed cert cannot save a domain that lapses before the CA can revalidate.
Alert fatigue from per-day nagging. Without once-per-threshold logic, operators mute channels and miss the one-day warning that matters.
Dashboard without environment labels. Staging expiry mixed into production views trains teams to ignore both.
Next steps
Run a live handshake on your riskiest hostname at test SSL online, then add the names that matter to scheduled monitoring. Register at /register to turn probes into an inventory with email alerts, or stay on the free tier while you validate coverage. Use /check anytime a row disagrees with what your browser shows.
Frequently asked questions
How often should a dashboard refresh certificate dates?
High-traffic revenue properties benefit from hourly external checks so Friday deploy mistakes surface before peak weekend load. Long-tail marketing microsites may tolerate daily polling on a free tier while you classify risk.
Can one dashboard row represent multiple environments?
Avoid mixing staging and production in one row without labels. Separate monitors or tagged rows prevent a green staging cert from masking production expiry.
What belongs in an export for auditors?
Include hostname, served issuer, notAfter, last probe time, probe result, and registrar expiry when RDAP provides it. Serial numbers let auditors compare incident timelines with deployment records.
Do inventory tools replace internal PEM monitoring?
No. File-based checks still validate renewal automation on origins. External inventory explains what the world sees after CDN, reload, and SNI paths—pair both signals like internal monitoring vs external SSL check describes.
Monitor this hostname on a schedule
Live certificate checks and renewal reminders — not guesswork from PEM files.