Skip to main content

    SSL Certificate Monitoring: What to Watch, and From Where

    Expiry dates are the easy part. The four places you can watch a certificate from, what each one is blind to, and why 200-day lifetimes changed alerting.

    MS
    My-SSL Team
    ·
    13 min read
    ·
    Published August 24, 2026
    ·
    Last updated August 24, 2026

    The short answer

    Certificate monitoring means watching four different things, and most setups watch one. Your CA account, a Certificate Transparency log, the file on the server, and a TLS probe of the live endpoint each see a different slice of reality, and each is blind to failures the others catch. Since 15 March 2026, when the maximum lifetime for a public TLS certificate fell to 200 days, the everyday failure has moved from "nobody renewed it" to "it renewed and never reached the server", and that one is visible from exactly one of the four.

    The four vantage points for monitoring an SSL certificate, and what each one cannot seeFour panels compare the places a certificate can be observed from. The certificate authority account knows every certificate it issued and when each one ends, but it is blind to whether any of them was ever installed. Certificate Transparency logs record every publicly trusted certificate issued for your domain names, including ones ordered by someone else, but they say nothing about deployment. The file on disk or in the configuration shows what a particular host was told to load, but not what the running service is actually serving. The fourth panel, highlighted, is a TLS probe of the live endpoint: it opens a connection to a hostname and port and reads the certificate and chain that are really presented, which is the only view that matches what a visitor gets. Its blind spot is that it only sees endpoints somebody remembered to add to the list. A footer notes that most monitoring setups use one of these four and assume it covers the other three.Four ways to look at one certificate. None of them sees everything.1 · Your CA accountSEESWhat was ordered, issued andwhen each certificate ends.BLIND TOWhether any of it reached aserver.2 · Certificate TransparencySEESEvery public certificate foryour names, includingones you did not order.BLIND TODeployment. Private CAs.3 · The file on the hostSEESWhat this machine was toldto load, on every port.BLIND TOWhat the running process isstill holding in memory.4 · A probe of the live endpointSEESThe leaf and chain actuallyserved, what a visitor gets.BLIND TOEndpoints nobody put onthe list.Most setups pick one of these four and quietly assume it covers the other three.
    Pick two that disagree with each other on purpose. An issuance feed plus a live probe covers far more ground than two views of the same inventory.

    What shorter certificates changed

    Shorter lifetimes did not make expiry more likely. They made renewal frequent enough that almost everyone automated it, and automation moved the failure. A certificate that renews twice a year without a human involved cannot be forgotten, but it can renew into a directory nobody reads, or renew correctly while the process serving it holds the old file open until the next restart.

    The dates are set. The CA/Browser Forum's SC-081v3 ballot put the maximum validity of a public TLS certificate at 200 days from 15 March 2026, 100 days from 15 March 2027, and 47 days from 15 March 2029. The reuse period for domain validation shrinks alongside it, down to 10 days by 2029, so the validation step will run about as often as the issuance step. As of August 2026 the first of those three steps is already in force.

    For monitoring, the useful way to read that schedule is as a shrinking margin for error. On a 398-day certificate a renewal that silently failed left you months to notice. On a 47-day certificate the same silent failure leaves weeks, and the second consecutive failure leaves nothing. Anything checked quarterly stops being a control and becomes a record of what used to be true.

    There is a smaller change worth knowing about, because it will confuse a monitoring dashboard eventually. Certificates issued as short-lived under the Baseline Requirements, capped at seven days since 15 March 2026, are not required to carry revocation information at all, since they expire faster than a CRL or OCSP response would refresh. A check that flags "no revocation URL" as a fault will start crying wolf the day someone adopts them.

    The four places you can watch from

    A certificate can be observed from four positions, and the word "monitoring" gets applied to all of them without distinction. Your CA account knows what was issued. Certificate Transparency knows what any public CA issued for your names. The host knows what file it was given. Only a probe of the live endpoint knows what is being served right now.

    Your CA account is an ordering record. It is authoritative about issuance and end dates, it covers certificates you bought and nothing else, and it has no idea what happened after you downloaded the files. It is the right place to answer "what do we own and when does it run out", and the wrong place to answer "is production healthy".

    Certificate Transparency logs are a public, append-only record of publicly trusted issuance. Chrome will not accept a certificate that lacks signed certificate timestamps from qualified logs, which in practice means every public certificate for your domains appears in CT, usually within a few hours of issuance. That includes certificates ordered on a company card by a team you have never met, and certificates obtained by someone who should not have been able to obtain them. No other vantage point shows you either.

    The file on the host is what configuration management sees. It is cheap to check, it covers internal and private-CA certificates that CT will never contain, and it lies in one specific way: a file is not a running service. The new certificate can sit on disk for a week while nginx serves the old one out of memory.

    A probe of the live endpoint opens a TLS connection to a hostname and port and reads back the leaf and the chain that were actually presented. It is the only view that matches the visitor's experience, and it is the only one that catches a deployment that did not happen. Its weakness is scope: it sees the endpoints on its list and is serenely unaware of the rest. For a single hostname you can get this view immediately with the free SSL certificate checker, which reports the served chain, the SANs, the signature algorithm and the days remaining for whatever is answering on that port right now.

    Two of these four, chosen so they disagree, beat four dashboards that all read from the same inventory. In practice that pairing is a live probe plus a CT feed: one tells you what you are serving, the other tells you what exists in your name.

    Which failures each vantage point catches

    Map real failures against the four positions and the gaps become obvious. The classic expiry, a certificate that ran out because nobody renewed it: is caught by all four, which is precisely why it has become rare. The failures that survive are the ones with a single mark in their row, and those are the ones worth designing around.

    Which monitoring vantage point catches which certificate failureA matrix places five certificate failures against the four vantage points: the CA account, Certificate Transparency logs, the file on the host, and a probe of the live endpoint. A certificate that simply ran out with nobody renewing it is caught by all four, which is why that failure has largely been solved. The highlighted row is a renewal that completed at the CA but never reached the server, or reached it without the service reloading: only the live endpoint probe catches it, because every other view still shows a fresh certificate. A certificate issued for your domain by a CA you do not use is caught only by Certificate Transparency. A chain missing its intermediate after a renewal is caught by the endpoint probe, and by the file on the host only if something parses the file rather than checking that it exists. An expiring certificate on a port nobody probes, such as an SMTP or LDAPS listener, is caught by the CA account, the CT logs and the file on disk, but not by a probe that was never pointed at it. A footer notes that no single column has a mark in every row.No column catches everything, and one row has only a single markWHAT WENT WRONGCAACCOUNTCTLOGSFILE ONHOSTLIVEPROBECertificate ran out, nobody renewed itthe failure everyone already monitors forRenewed at the CA, never servednot copied out, or copied and never reloaded, , , A CA you do not use issued for your domainshadow IT, a hijacked zone, or a genuine mistake, , , Intermediate missing after the renewalfine in Chrome, broken in Java and on mobile, , only if parsedExpiring cert on a port nobody probesSMTP on 465, LDAPS on 636, an internal admin UI, The highlighted failure is the one shorter lifetimes made routine, and only one column sees it.
    Read the matrix by column and the gaps name your next check. Read it by row and it explains why two teams looking at two dashboards can both be sure the certificate is fine.

    The highlighted row is the modern one. A renewal completes, the CA's records look perfect, CT shows a fresh certificate with 200 days left on it, the new file is sitting on the host, and the load balancer in front of it is still presenting the certificate it loaded at boot. Every inventory-based view reports success. Only something that actually connects notices, and it notices instantly, because the served certificate has the old serial number and the old end date.

    The last row is the mirror image and catches people who did build a probe. A certificate covering both the web front end and the mail server gets renewed and redeployed on 443, where the probe watches; the SMTP listener on 465 keeps the old copy, because the deployment script only ever knew about the web server. The inventory views would have flagged it. The probe never looked.

    What to alert on besides the end date

    Days-to-expiry is one signal among several, and on its own it is the slowest of them. A certificate that failed to deploy is detectable the moment it fails, not thirty days before the old one runs out, and the difference between those two detections is the difference between a quiet fix and a weekend. Alert on the state you expect, and let expiry be the backstop.

    SignalWhat it catchesWhy the expiry check misses it
    Served serial changed as expectedA renewal that never reached the endpointThe old certificate is still valid, so nothing looks wrong yet
    Certificate age exceeds the renewal intervalAutomation that stopped runningFires when the renewal was due, not when the cushion is gone
    Chain completeness and orderA missing or stale intermediateThe leaf is perfectly valid; only some clients fail
    Every SAN still matches what is in useA hostname added after the last issuanceThe certificate has not expired; it just does not cover the name
    Issuer is one you actually useA certificate nobody on the team orderedAn unexpected certificate has a perfectly good end date
    Key algorithm and sizeA reissue that quietly dropped to a weaker keyNothing about the dates records what key was used

    The second row is the one to build first if you build only one. "This certificate is older than the renewal interval" is an alert that fires on the day automation breaks rather than weeks later, and it needs no integration with the tool doing the renewing, just the notBefore date from the endpoint and the number of days you expect between renewals.

    Picking a threshold that survives 2027

    Express warning thresholds as a share of the certificate's lifetime rather than a fixed number of days. Thirty days was a comfortable 7.5% cushion on a 398-day certificate. Against the 200-day maximum in force since 15 March 2026 it is 15%, against 100-day certificates it is 30%, and against 47-day certificates it is roughly two thirds of the certificate's entire life.

    What a fixed 30-day expiry warning costs as certificate lifetimes shrinkFour horizontal bars show the maximum public TLS certificate lifetime at each stage of the CA/Browser Forum schedule, drawn to scale: 398 days before 15 March 2026, 200 days from 15 March 2026, 100 days from 15 March 2027, and 47 days from 15 March 2029. On each bar the final 30 days are shaded to represent a fixed thirty-day expiry warning. That slice is about 7.5 percent of a 398-day certificate, 15 percent of a 200-day certificate, 30 percent of a 100-day certificate, and roughly 64 percent of a 47-day certificate, where the bar is highlighted. A footer states the conclusion: a threshold set in days becomes a permanent alarm, so thresholds should be expressed as a share of the certificate's lifetime instead.A fixed 30-day warning is a different alert every three yearsMAX LIFETIMESHADED = THE LAST 30 DAYSSHARE398 daysuntil Mar 20267.5%200 daysfrom 15 Mar 202615%100 daysfrom 15 Mar 202730%47 daysfrom 15 Mar 2029≈64%Set the threshold as a share of the lifetime and it keeps meaning the same thing after each change.
    The number that felt comfortable in 2025 becomes an alarm that never stops in 2029. Anything expressed in days has an expiry date of its own.

    A workable pair of thresholds is a warning at about one third of the lifetime remaining and an escalation at one tenth. On today's 200-day certificates that is roughly 66 days and 20 days; on the 100-day certificates arriving in March 2027 it becomes about 33 and 10; on 47-day certificates it lands near 16 and 5. Written as fractions, the same rule carries through every step of the schedule without anyone editing a config file in a hurry.

    One caveat on the escalation tier: it should be long enough to actually reissue. If your process involves organisation validation that can take a working day or two, a 5-day escalation on a 47-day certificate is tight, and the answer is to renew earlier rather than to alert later. Certificates that renew at two thirds of their life have two full attempts before anything is at risk, which is the real reason ACME clients renew so early.

    If you are managing a handful of certificates rather than a fleet, the same arithmetic works without a monitoring stack, check the endpoint, then set an expiry reminder for that hostname at 30, 14 and 7 days and treat the earliest one as the date you act on.

    It is not only port 443

    Monitor every port that terminates TLS, not every website. The usual list runs well past the web server: SMTP on 25, 465 and 587, IMAP on 993, LDAPS on 636, database listeners, message brokers, VPN concentrators, printer and NAS admin pages, and the internal dashboards that nobody counts as production until they stop loading.

    Two details decide whether the probe reports the truth. The first is name-based virtual hosting: a server can hold dozens of certificates and picks one based on the Server Name Indication extension in the client hello, so a probe that connects by IP address gets whatever the default virtual host is configured with, which is frequently not the certificate you meant to check. Always probe by hostname.

    The second is protocols that start in the clear. SMTP on port 587 and IMAP on 143 negotiate TLS with STARTTLS after an initial plain exchange, so a probe that opens a raw TLS socket simply hangs or reports a handshake error. The check has to speak enough of the protocol to reach the upgrade, which most mature monitoring tools support and most quick scripts do not. A mail server certificate that never appears on a dashboard is usually this, not an oversight.

    Build the list from DNS and from your load balancer configuration rather than from memory, and rebuild it on a schedule. The endpoints that cause incidents are the ones added after the monitoring was set up.

    The chain, and certificates you did not order

    Check the chain the server sends, not just the leaf it sends. A server is expected to present its leaf plus the intermediates needed to reach a trusted root, and when an intermediate goes missing after a renewal the result is the most confusing class of certificate incident: desktop browsers keep working from cached intermediates while Java clients, older Android devices and command-line tools fail on the identical host.

    This happens more often than the failure deserves, because the two files are separate. A deployment that copies cert.pem and forgets chain.pem, or installs a leaf where the configuration expects a bundle, produces a host that tests fine from the engineer's laptop. Any check that validates the served chain from a clean trust store rather than a browser catches it on the first run.

    Watching CT logs answers a different question: what exists in your name. Because publicly trusted certificates must be logged for Chrome to accept them, a search over your domains returns the complete public picture, and anything in it that your team did not order is worth a conversation the same day. Most hits are mundane, a marketing agency standing up a landing page, a cloud provider issuing automatically for a hostname you delegated. The point is that they are all visible, and none of them would appear in your CA account.

    CT monitoring pairs naturally with a CAA record on your domain: the CAA record states which certificate authorities are allowed to issue for you, and the CT feed tells you whether anything got issued anyway. One is a control, the other is the audit of that control, and neither substitutes for the other.

    Keeping the alerts worth reading

    An expiry alert that fires every day for six weeks trains everyone to ignore expiry alerts, and it is the most common way certificate monitoring fails while appearing to work. The fix is not a longer threshold or a quieter channel. It is making each alert correspond to an action that someone can take once.

    Three habits do most of the work. Alert on the transition rather than the state, so crossing the threshold notifies once instead of every polling cycle. Group by certificate rather than by endpoint, because one wildcard on forty hosts is one renewal and should be one ticket. And separate "needs attention this month" from "is broken now" into different destinations, the first belongs in a weekly digest, the second belongs wherever your on-call actually looks.

    It is also worth alerting when a check stops reporting. A probe that silently dies looks exactly like a fleet with no problems, and the certificate it was watching expires on schedule regardless. A heartbeat on the monitoring itself is a small amount of work that closes the one gap nothing else covers.

    A setup that fits on one page

    Most teams need five things, and none of them require a certificate lifecycle platform to start. The order below is deliberate: each step closes a failure the previous one could not see, so stopping after any of them still leaves you better off than before.

    1. Build the endpoint list from DNS and load balancer config, including non-web ports. Rebuild it monthly. An endpoint that is not on the list is not monitored, whatever the dashboard says.
    2. Probe every endpoint by hostname, hourly, and record the served leaf and chain. This single step covers deployment failures, chain breaks and name mismatches at once.
    3. Alert on age, not only on expiry. If a certificate is older than your renewal interval, the automation has already failed, and you have the full remaining lifetime to fix it calmly.
    4. Set expiry thresholds as fractions, warn near a third of the lifetime, escalate near a tenth. They then survive March 2027 and March 2029 without an edit.
    5. Watch Certificate Transparency for your domains and pair it with a CAA record. This is the only step that finds certificates you never ordered, and it costs nothing to run.

    Add a heartbeat on the probe itself and the set is complete. It will not manage renewals for you, and it is not meant to, its job is to tell you, quickly and in plain terms, when something you believed was true stopped being true.

    FAQ

    Frequently Asked Questions

    Get instant answers to common questions about SSL certificates and our services.

    Still Have Questions?

    Our SSL experts are available 24/7 to help with any questions about certificates, installation, or technical issues.

    Want to see what one of your endpoints is actually serving?

    The quickest version of the live-probe check is a single lookup: enter a hostname and port, and read back the leaf, the chain, the SANs and the days remaining as a client would see them. It is free, it needs no account, and it is a reasonable way to confirm a deployment actually landed before you go looking for a bigger tool.

    Check a certificate with the SSL checker