undownable

SSL certificate monitoring that verifies more than a date

Updated Aug 19, 2026

Most certificate monitors read one field: notAfter. That misses the self-signed cert someone dropped in during a migration, the chain missing an intermediate, and the certificate valid for a hostname you are not serving. Undownable opens a real TLS connection and checks all of it.

The failure modes an expiry check misses

Every one of those presents a certificate with a future expiry date, so a monitor that only reads the date reports green.

What the SSL probe actually does

Undownable connects on port 443, or whichever port you configure, captures the certificate the server presents, and runs three judgements in order.

Validity dates first. An expired certificate reports down with a precise message, "Certificate expired 3 days ago" rather than a generic handshake error, and one whose notBefore is in the future reports the date it becomes valid. That precision is why the capture connection runs with verification off: a verifying handshake against an expired certificate just fails, and you lose the reason.

Then the name. The probe collects the dNSName entries from the SAN extension, falling back to the subject common name when there are none, and matches your hostname with RFC 6125 rules. Wildcards match one leftmost label, so *.example.com covers foo.example.com but not a.b.example.com.

Finally the chain. A second handshake runs with full peer and peer-name verification on, catching self-signed certificates, untrusted issuers, and missing intermediates. Only a certificate that survives all three counts as healthy.

Warnings that escalate instead of going quiet

The classic renewal disaster is not a missing warning. It is a warning that arrived 30 days out, got filed under "next week", and was never repeated until the certificate expired at 2am on a Saturday.

Undownable escalates. Inside the warning window, which defaults to 30 days and is configurable per monitor, the result carries the threshold it has crossed: your configured window first, then 14 days, then 7, then 1. Each time the remaining validity reaches a tighter one, a fresh alert goes out.

Days remaining Monitor state What happens
More than 30 Up Silent and green.
30 to 15 Degraded First warning, at the configured window.
14 to 8 Degraded Re-alerts at the 14-day level.
7 to 2 Degraded Re-alerts at the 7-day level.
1 to 0 Degraded Final warning, 1-day level.
Expired Down Incident opens, naming how long ago.

Degraded is a warning, not an outage

A certificate expiring in nine days is not downtime: the site is serving and browsers are happy. Degraded has its own badge, it alerts, and it counts as up when uptime is computed, so a renewal you handled on time does not dent your monthly figure.

When the certificate is renewed and validity climbs back out of the window, the monitor returns to up and the episode closes with an all-clear. The escalation level resets for the next cycle.

Setting up a certificate monitor

Certificate monitors run on the free plan alongside its other nine, with 30 days of history, a status page, and every alert channel: email, ntfy, Telegram, Slack, Discord, and webhooks. Delivery is exactly-once, which matters here because escalation deliberately sends several alerts about one certificate. Pro adds 50 monitors, one-minute checks, unlimited status pages and members, custom domains, and a year of history, for a flat per-team price with no per-monitor fees, after a 14-day trial with no card.

Questions people ask

I use certbot with auto-renewal. Do I still need this?

Yes, because the thing that fails is usually the automation, not the certificate. A renewal hook that stopped reloading nginx, or a cron job lost in a server rebuild, leaves the old certificate in place while certbot reports success where you are not looking.

Does a self-signed certificate always report down?

Yes: the verification handshake fails and the monitor reports it as untrusted. If you deliberately serve one internally, use a TCP port monitor to prove the listener is up instead.

What if my certificate covers many hostnames?

Create one monitor per hostname you serve. The SAN check verifies the specific hostname you entered, so watching one name on a large multi-SAN certificate would not catch a renewal that dropped a different one.

Related reading

Monitoring that watches from the outside

Free plan with 10 monitors, plus a 14-day Pro trial. No credit card required.

Start free