QCecuring - Enterprise Security Solutions

47-Day TLS Certificates: A Practical Preparation Playbook

Certificate Lifecycle Management 31 Aug, 2026 · 07 Mins read

The CA/Browser Forum has locked in a phased drop to 47-day certificate lifespans by 2029. Here is the operational playbook to prepare, from inventory to automation to fallback planning.


47-Day TLS Certificates: A Practical Preparation Playbook


The debate about shorter certificate lifespans is over. The CA/Browser Forum has ratified a phased reduction that ends at 47-day maximum TLS certificate validity. This is no longer a proposal to argue about. It is a deadline to prepare for.

Plenty of coverage explains why this is happening. This playbook is about what to do. It walks through the operational sequence, from knowing what you have, to automating renewal, to building the fallback plans that keep you online when automation fails, because at 47-day cadence, it eventually will.

If your certificate operations still involve a spreadsheet and a calendar reminder, this post is the migration plan away from that.


Renewal Workload Explosion

300 certificates: annual renewals & engineer hours as lifespans shrink

More renewals at 47 days vs 1 year

1,200 hrs

= 0.6 FTE doing nothing but renewals

The Phased Timeline You Are Planning Against

The reduction happens in steps, not all at once. Each step compresses your renewal window further.

PhaseMaximum TLS ValidityRenewals per Cert per Year
Today398 days~1
Phase 1200 days~2
Phase 2100 days~4
Final47 days~8

The number that matters is the last column. A certificate you renew once a year today will need renewing roughly eight times a year at the final phase. That multiplier is what breaks manual processes.

The Math That Forces the Change

The workload increase is linear with certificate count and inversely proportional to lifespan. It compounds fast.

Certificate CountRenewals/Year at 398 daysRenewals/Year at 47 daysRenewals/Week at 47 days
100100~780~15
500500~3,900~75
1,0001,000~7,800~150
5,0005,000~38,800~745

At 500 certificates, you go from renewing about ten certificates a week to seventy-five. Each manual renewal involves validation, issuance, deployment, and verification. Even at an optimistic 20 minutes each, 75 per week is 25 hours of pure certificate work, every week, for one team that also has other responsibilities.

Manual renewal does not scale to this. The playbook below is how you get out of manual.

Phase 1: Know What You Have (Weeks 1 to 3)

You cannot automate renewal for certificates you do not know exist. Inventory is the prerequisite for everything else, and it is where most teams discover their real problem: they have far more certificates than they thought.

Discover External Certificates

Certificate Transparency logs record every publicly-trusted certificate ever issued for your domains. Query them to find certificates you forgot about.

# Find every publicly-logged certificate for your domain
curl -s "https://crt.sh/?q=%25.example.com&output=json" | \
  jq -r '.[].common_name' | sort -u > external-certs.txt

echo "Unique names found in CT logs: $(wc -l < external-certs.txt)"

Scan Active Endpoints

CT logs show what was issued. Active scanning shows what is actually deployed and when it expires.

#!/bin/bash
# Check live expiry for a list of hosts
while read host; do
  expiry=$(echo | timeout 5 openssl s_client -connect "$host:443" \
    -servername "$host" 2>/dev/null | \
    openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
  [ -n "$expiry" ] && echo "$host,$expiry"
done < external-certs.txt > cert-expiry-inventory.csv

Build the Ownership Map

For each certificate, record: the hostname and all SANs, the CA that issued it, the expiry date, the current renewal method (manual, automated, or unknown), and the owner who gets paged when it expires. The “unknown” and “manual” rows are your automation backlog.

Phase 2: Automate Renewal (Weeks 3 to 10)

The only sustainable answer to 47-day certificates is automation. The mechanism depends on where the certificate lives.

ACME for Everything That Supports It

The ACME protocol (RFC 8555) handles domain validation, issuance, and renewal without human involvement. It is no longer just Let’s Encrypt, commercial CAs including DigiCert, Sectigo, and Entrust support ACME endpoints.

# certbot with automatic renewal via systemd timer
sudo certbot certonly --standalone -d api.example.com \
  --deploy-hook "systemctl reload nginx"

# Confirm the renewal timer is active
systemctl list-timers | grep certbot

# Dry-run to prove renewal works before relying on it
sudo certbot renew --dry-run

cert-manager for Kubernetes

In Kubernetes, cert-manager renews automatically. The key setting for short lifespans is renewBefore, which should be a healthy fraction of the total lifetime so transient failures have time to retry.

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: api-tls
  namespace: production
spec:
  secretName: api-tls-secret
  duration: 1128h      # 47 days
  renewBefore: 360h    # renew 15 days early, leaves retry headroom
  issuerRef:
    name: letsencrypt-prod
    kind: ClusterIssuer
  dnsNames:
    - api.example.com

The Awkward Middle: Things ACME Cannot Reach

Load balancers, network appliances, legacy Java keystores, and third-party SaaS portals often cannot run an ACME client. These are the certificates that will cause your outages at 47-day cadence, because they stay manual while everything around them automates.

For these, you need either a CLM platform that pushes certificates to them via vendor APIs, or a documented, owned, monitored manual process with alerts far enough in advance to act. At 47 days, a 30-day advance alert leaves very little slack, so tighten alerting for anything that stays manual.

Phase 3: Monitor Like You Mean It (Weeks 8 to 12)

Automation without monitoring is a silent failure waiting to happen. At 47-day cadence, a broken renewal has days, not months, before it becomes an outage. Your monitoring must catch failures in hours.

# Prometheus blackbox exporter alerts for short-lived certs
groups:
  - name: certificate_expiry
    rules:
      - alert: CertExpiringSoon
        expr: probe_ssl_earliest_cert_expiry - time() < 86400 * 10
        for: 1h
        labels:
          severity: warning
        annotations:
          summary: "Certificate on {{ $labels.instance }} expires within 10 days"

      - alert: CertRenewalStalled
        expr: probe_ssl_earliest_cert_expiry - time() < 86400 * 5
        for: 1h
        labels:
          severity: critical
        annotations:
          summary: "Certificate on {{ $labels.instance }} under 5 days, renewal likely failed"

The critical shift is that alert thresholds must compress along with the certificate lifespan. A 60-day warning is meaningless for a 47-day certificate. Align your alert ladder to the new reality: informational at 14 days, action-needed at 10, critical at 5.

Phase 4: Plan for When Automation Fails

At eight renewals per certificate per year, automation will occasionally fail. A DNS challenge times out, a CA rate-limits you, a deploy hook errors, a network path breaks. Mature operations plan for this instead of hoping it does not happen.

Failure ModeDetectionFallback
ACME challenge failsRenewal error in logs, expiry alert firesRetry with alternate challenge type (DNS-01 vs HTTP-01)
CA rate limitingRepeated issuance rejectionsStagger renewals, use a secondary CA
Deploy hook failsNew cert issued but old cert still servedAlert on serial mismatch between issued and deployed
Network path breaksEndpoint unreachable during renewalManual issuance runbook, owned and documented

The single most valuable practice is verifying deployment, not just issuance. A renewal that issues a new certificate but fails to deploy it looks successful in the CA logs while the server still serves the old, expiring certificate. Monitor the certificate actually being served, not just the one in your store.

# Verify the SERVED certificate matches the freshly issued one
served_serial=$(echo | openssl s_client -connect api.example.com:443 \
  -servername api.example.com 2>/dev/null | \
  openssl x509 -noout -serial | cut -d= -f2)
echo "Currently served serial: $served_serial"
# Compare against the serial your automation just issued

What Good Looks Like at 47 Days

An organization ready for 47-day certificates has these properties:

  • Complete, continuously-updated inventory of every certificate, with an owner for each
  • The large majority of certificates renewing automatically via ACME or a CLM platform
  • The unavoidable manual exceptions documented, owned, and monitored with tight alerts
  • Deployment verification, not just issuance confirmation
  • An alert ladder compressed to match the 47-day window
  • Tested fallback runbooks for renewal failure

Notice what is not on the list: heroics, calendar reminders, or a single person who remembers when things expire. The entire point of preparing for 47-day certificates is to remove humans from the routine renewal loop, so the compression from one renewal a year to eight becomes a configuration detail rather than a staffing crisis.

The Cost of Waiting

Every phase of the reduction that arrives before you automate makes the manual burden worse. Teams that start now automate calmly at today’s volume. Teams that wait automate under pressure, during outages, after a missed renewal has already taken down a customer-facing service. The work is the same either way. Only the circumstances differ.

The reduction is phased precisely so organizations have time to adapt. That time is the resource. Spending it on inventory and automation now is far cheaper than spending it firefighting later.

FAQ

Q: When do 47-day certificates take effect? The CA/Browser Forum ratified a phased reduction that steps down through 200-day and 100-day maximums before reaching the 47-day maximum. The intermediate phases arrive first, each one compressing the renewal window further, so preparation should not wait for the final deadline.

Q: Does the 47-day limit apply to internal certificates? The CA/Browser Forum rules govern publicly-trusted certificates. Internal certificates from a private CA (AD CS, Vault, step-ca) are not directly bound by them. In practice, auditors increasingly question why internal certificates have multi-year lifespans when the public standard is 47 days, so many organizations shorten internal lifespans and automate them too.

Q: Do I have to buy a CLM platform to handle this? Not necessarily. If your certificates are ACME-compatible and live on systems that can run an ACME client, open-source tooling like certbot and cert-manager can handle renewal for free. A CLM platform becomes worthwhile when you have hundreds of certificates, multiple CAs, and systems that cannot run ACME clients directly.

Q: What is the single most common cause of certificate outages under automation? Deployment failure after successful issuance. Automation issues a new certificate, but the deploy step fails and the server keeps serving the old one until it expires. Always monitor the certificate actually being served, not just the one your automation issued.

Q: How early should renewal be triggered for a 47-day certificate? A common target is renewing when about a third of the lifetime remains, roughly 15 days early. This leaves enough headroom to retry transient failures (DNS timeouts, CA rate limits) before the certificate actually expires.


About QCecuring

QCecuring helps enterprises prepare for short-lived certificates before the deadline forces the issue. Our platform continuously discovers every certificate across your infrastructure, automates renewal across multiple CAs, verifies deployment rather than just issuance, and compresses alerting to match the 47-day reality, so the shift to eight renewals a year is something your systems handle, not your on-call engineer.

Get ready for 47-day certificates


Tags: 47-Day Certificates, CA/Browser Forum, Certificate Lifecycle Management, CLM, TLS, Certificate Automation, ACME, certbot, cert-manager, Short-Lived Certificates, Certificate Renewal, Certificate Monitoring, PKI, Certificate Outage

Stay Ahead on Crypto & PKI

Monthly insights on certificate management, post-quantum readiness, and enterprise security.

Subscribe Free

Related Insights

Certificate Lifecycle Management

Multi-Cloud Certificate Management: One Inventory Across AWS, Azure, and GCP

Each cloud manages certificates differently, and none see the others. Here is how certificate sprawl happens across AWS, Azure, and GCP, and how to build one unified inventory that covers all three.

By Shivam sharma

31 Aug, 2026 · 06 Mins read

Certificate Lifecycle ManagementCloud Security

Post Quantum Cryptography

Post-Quantum TLS 1.3: Deploying Hybrid Key Exchange in Production

A practical guide to enabling X25519MLKEM768 hybrid key exchange in TLS 1.3, including server configs, client support, handshake size impact, and the gotchas that break real deployments.

By Shivam sharma

26 Aug, 2026 · 06 Mins read

Post Quantum CryptographySSL/TLS

Certificate Lifecycle Management

What a $0 Certificate Outage Prevention Strategy Looks Like

Free and open-source approaches to certificate monitoring using PowerShell scripts, certutil queries, cron jobs, and Prometheus exporters — when free is enough and when you've outgrown it.

By Mani sri kumar

18 Aug, 2026 · 06 Mins read

Certificate Lifecycle ManagementEnterprise Security

Ready to Secure Your Enterprise?

Experience how our cryptographic solutions simplify, centralize, and automate identity management for your entire organization.

Stay ahead on cryptography & PKI

Get monthly insights on certificate management, post-quantum readiness, and enterprise security. No spam.

We respect your privacy. Unsubscribe anytime.