Bali, Indonesia
Insights

Why Manual SSL Renewal Tracking Fails as Certificate Lifetimes Shrink to 47 Days

October 20, 2026
0:00
If you're still keeping SSL expiry dates in a spreadsheet or a calendar reminder, you've probably noticed the reminders are coming faster than they used to. That's not your imagination. Certificate lifetimes have been shrinking for years, and the pace is about to speed up a lot more. This is less a tooling preference now and more a question of whether manual tracking can survive the math.
The CA/Browser Forum, the industry group that sets baseline rules for how public certificates get issued, has been pushing validity periods down for a while. Certificates used to run for up to 398 days. The current cap sits at 200 days. Under Ballot SC081v3, the schedule calls for a drop to 100 days by March 2027, and then down to 47 days by March 2029. The reasoning behind this is mostly about reducing the blast radius of a compromised or misissued certificate. A shorter lifetime means less time an attacker can exploit a stolen private key or a validation mistake before the certificate expires on its own. It also forces revocation mechanisms, which have always been unreliable in practice, to matter less, because the certificate dies naturally before most of these problems ever get noticed.
Here's the part people miss: it's not just that you have to renew more often. The margin for error shrinks too. At 200 days, if your manual check runs a bit late, or someone misses a reminder, you've usually still got weeks of buffer. At 47 days, that same slip eats a much bigger share of the certificate's life. A two week delay on a 200 day cert is a rounding error. The same two week delay on a 47 day cert is nearly a third of its total lifespan gone. The research context also points to the domain validation reuse window shrinking down to 10 days by 2029. That window is how long a CA can reuse a previous domain validation (proving you control the domain) before it has to redo the check. A shorter reuse window means even if your renewal script works, the validation step itself has less slack if DNS or HTTP checks are flaky that day. Manual tracking was never built to catch validation failures in a 10 day window. It was built around 'check once a month and renew when you remember.'
In theory, yes, if the person doing it never gets sick, never changes roles, never misses a notification, and the renewal always succeeds on the first try. In practice, that's not how support tickets work. The pattern that shows up again and again isn't that nobody knew the expiry date. It's that the renewal process itself had a silent failure, a DNS validation record left stale, a CAA record blocking the new issuer, a redirect rule intercepting the ACME HTTP-01 challenge, and nobody caught it until the certificate actually expired and the site threw a browser warning. With a 200+ day cycle, there's enough time between renewals for staff turnover, forgotten context, and configuration drift to build up unnoticed. With a 47 day cycle, that same drift gets exposed almost every month and a half, which is either a good thing (you find problems faster) or a disaster (you're now firefighting SSL issues six to eight times a year per domain instead of twice).
The practical answer is an ACME client set up to renew automatically well before expiry, not a human checking dates. Most ACME clients (Certbot, acme.sh, or whatever your control panel's AutoSSL equivalent is) are designed to attempt renewal once a certificate crosses roughly two-thirds of its lifetime, and they retry on failure. At a 47 day lifetime, that means renewal attempts start well before the one month mark, giving you several retry cycles instead of one manual deadline. The habit that actually matters isn't 'remember to renew.' It's 'monitor whether the automated renewal succeeded,' which is a different kind of check. You're not tracking an expiry date anymore, you're watching for renewal failures. That can be as simple as a cron job that checks certificate expiry against a threshold and alerts if it's unexpectedly close, independent of whatever your ACME client is supposed to be doing:
BASH
# Example: warn if a cert expires in less than 15 days (read-only check)
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
  | openssl x509 -noout -enddate
If that date is closer than expected, the question isn't 'did someone forget to renew,' it's 'why did the automated renewal not run or not succeed.' That's usually a DNS validation problem, a CAA record issue, or a redirect rule eating the HTTP-01 challenge before it reaches the right file path.
Even with automation in place, there are a handful of recurring causes worth knowing, since switching to an ACME client doesn't make these problems disappear, it just changes who notices them first (your monitoring, instead of a browser warning in front of a visitor). Stale _acme-challenge TXT records left behind by old DNS-01 validation attempts can cause new validation checks to fail or get confused, especially if your DNS zone has grown cluttered over time. CAA records inherited from an older manual certificate setup can silently block a newer automated issuer from getting a certificate at all. And global HTTPS redirect rules, if they fire before the ACME client's HTTP-01 challenge path is served, can prevent the validation request from ever reaching the file it's looking for. If you're troubleshooting any of these, there's more detail in Pruning Stale _acme-challenge Records to Prevent DNS-01 Validation Errors and Fixing CAA Failures When Switching from Manual SSL to ACME Clients. The shift from manual tracking to automated renewal isn't really about saving time on one task. It's about matching your process to a timeline that no longer has room for human-paced checking. Set up the ACME client once, then put your attention into monitoring whether renewals are actually succeeding, because at 47 days per cycle, that's the check that will catch problems before visitors do.