Why Automated Certificate Renewals Still Need Expiration Monitoring

The landscape of SSL/TLS certificate management is undergoing a massive structural shift. With Google’s push to reduce the maximum validity of public TLS certificates from 398 days to just 90 days, th...

Tim Henrich
July 30, 2026
8 min read
43 views

Why Automated Certificate Renewals Still Need Expiration Monitoring

The landscape of SSL/TLS certificate management is undergoing a massive structural shift. With Google’s push to reduce the maximum validity of public TLS certificates from 398 days to just 90 days, the math for infrastructure teams has fundamentally changed. A four-fold increase in renewal frequency means manual tracking in spreadsheets is no longer just inefficient—it is a mathematical impossibility.

The industry's response has been a massive push toward automation. The ACME (Automated Certificate Management Environment) protocol and tools like Let's Encrypt have become the standard for issuing and renewing certificates. But this shift has created a dangerous new fallacy among DevOps and SRE teams: the belief that automation eliminates the need for monitoring.

Automation is the engine that keeps your infrastructure running, but monitoring is the safety net. When automated renewals fail—and they do, frequently—a robust expiration monitoring strategy is the only thing standing between your team and a catastrophic outage.

The High Cost of Blind Trust in Automation

If you think certificate outages are a relic of the past, the data suggests otherwise. According to recent industry reports, 80% of organizations have experienced at least one outage caused by an expired certificate in the past 24 months. For large enterprises, the cost of a certificate-related outage is estimated at $300,000 per hour due to lost revenue, SLA penalties, and engineering remediation time.

Real-world case studies illustrate exactly how these failures manifest, even in highly sophisticated engineering organizations:

  • Starlink's Global Outage (April 2023): A widespread outage affecting thousands of users globally was traced back to a single expired certificate in a ground station. This highlights a critical reality: even organizations deploying cutting-edge satellite networks can miss internal machine identities.
  • Cisco Webex and Meraki (2023/2024): Various service disruptions across these platforms have been attributed to expiring certificates in backend microservices. External-facing certificates are usually heavily scrutinized, but internal service-to-service communication is often a blind spot.
  • The Equifax Breach (Historical): While not a recent outage, this remains the gold standard for understanding the security impact of expired certificates. An expired internal SSL certificate on a network traffic inspection device prevented the system from decrypting and analyzing traffic. This failure created a massive blind spot, allowing attackers to exfiltrate data undetected for 76 days.

The lesson is clear: expired certificates do not just cause downtime; they create severe security vulnerabilities.

Why Automated Renewals Fail

If tools like Certbot and cert-manager are running, why do certificates still expire? The reality is that certificate automation relies on a fragile chain of dependencies. When one link breaks, the renewal silently fails.

  1. DNS Validation Failures: ACME clients often use DNS-01 challenges to prove domain control. If a DNS record is moved, a zone file is locked, or cloud IAM permissions for the DNS provider change, the automation cannot write the required TXT record.
  2. Firewall and Routing Changes: HTTP-01 challenges require the Certificate Authority (CA) to reach your server over port 80. A well-meaning security engineer tightening inbound firewall rules can inadvertently block Let's Encrypt from validating the server.
  3. CA Rate Limits and Outages: Public CAs enforce strict rate limits. If a misconfigured script requests too many certificates in a short window, your domain may be temporarily blacklisted from renewals.
  4. Webhook and API Deprecations: Cloud-native certificate managers rely on APIs to inject new certificates into load balancers and ingress controllers. When cloud providers update their APIs or deprecate old endpoints, the deployment phase of the automated renewal fails, leaving the old certificate in place.

Without independent monitoring, these failures go completely unnoticed until a user's browser throws a NET::ERR_CERT_DATE_INVALID error.

Core Pillars of Expiration Monitoring

To build a resilient infrastructure, you must decouple your monitoring from your automation. Monitoring should observe the actual state of the deployed certificates, verifying that the automation successfully did its job.

1. Continuous Discovery

You cannot monitor what you do not know exists. The average organization uses over nine distinct Certificate Authorities, leading to heavily fragmented visibility.

Relying on a static list of domains is insufficient. Implement continuous network scanning across common ports (443, 8443) and integrate with cloud APIs (like AWS Route53 or Azure DNS) to discover new endpoints dynamically. Furthermore, monitor Certificate Transparency (CT) Logs to detect any certificate issued for your company's domains by any CA globally. This catches "Shadow IT" certificates spun up by developers outside of your automated pipelines.

2. The 30-15-7-1 Alerting Cadence

Alert fatigue is the enemy of effective monitoring. If you send an email to a generic devops@ distribution list every time a certificate hits 30 days, those alerts will be ignored. Instead, implement a tiered escalation policy based on the expected behavior of your automation.

  • 30 Days (The Automation Window): This is when your ACME client or cert-manager should trigger the automated renewal. No human alerts should be sent at this stage; let the machines work.
  • 15 Days (The Warning): If a certificate reaches 15 days until expiration, your automation has failed. Send a warning alert via Slack or Microsoft Teams directly to the specific service owner defined by infrastructure tags.
  • 7 Days (The Critical Escalation): The situation is now critical. Route a high-priority alert to the DevOps or SRE team. At this point, manual intervention is required to debug the broken automation pipeline.
  • 1 Day (The Incident): Trigger a PagerDuty incident. The service is hours away from a hard outage.

3. Monitoring Internal vs. External Infrastructure

Most teams have robust monitoring for www.company.com. However, the explosion of Kubernetes, microservices, and IoT devices means organizations now manage thousands of internal certificates for mutual TLS (mTLS).

Apply the same rigorous monitoring to your internal Public Key Infrastructure (PKI), Private CAs, and Active Directory Certificate Services. Internal outages are often vastly more difficult to troubleshoot because browsers aren't there to provide immediate, user-visible error messages. A microservice simply drops the connection, leading to cascading failures across the application stack.

Technical Implementation: How to Monitor Expiration

Effective monitoring requires a combination of outside-in (Blackbox) and inside-out (Whitebox) observability.

Blackbox Monitoring with Prometheus

Blackbox monitoring involves probing your endpoints over the network exactly as a client would. This is the most reliable way to verify what certificate is actually being served to end-users.

If you are using the Prometheus ecosystem, the Blackbox Exporter is the industry standard for this task. It connects to your endpoints, completes the TLS handshake, and exposes the probe_ssl_earliest_cert_expiry metric.

Here is an example prometheus.yml configuration to monitor a list of endpoints:

scrape_configs:
  - job_name: 'ssl_expiry_check'
    metrics_path: /probe
    params:
      module: [http_2xx]  # Look for a HTTP 200 response
    static_configs:
      - targets:
        - https://api.yourdomain.com
        - https://auth.yourdomain.com
        - https://internal-service.local:8443
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: blackbox-exporter:9115  # The blackbox exporter's real hostname

You can then create a PromQL alert to trigger when a certificate crosses the 15-day threshold (1,296,000 seconds):

groups:
- name: ssl_alerts
  rules:
  - alert: SSLCertExpiringSoon
    expr: probe_ssl_earliest_cert_expiry - time() < 1296000
    for: 1h
    labels:
      severity: warning
    annotations:
      summary: "SSL certificate for {{ $labels.instance }} expires in less than 15 days"
      description: "Automated renewal likely failed. Manual intervention required."

The Quick Bash Check

For quick diagnostics, CI/CD pipeline assertions, or environments without a full observability stack, openssl is your best tool. You can extract the exact expiration date of a remote certificate using the following one-liner:

echo | openssl s_client -servername api.yourdomain.com -connect api.yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates

This will output:

notBefore=Oct 10 00:00:00 2023 GMT
notAfter=Jan 08 23:59:59 2024 GMT

To make this actionable in a script, you can convert the notAfter date into a Unix timestamp and compare it against the current date to calculate the remaining days.

Monitoring Beyond Just the Expiration Date

A comprehensive monitoring strategy looks at the entire health of the TLS configuration, not just the expiration date. As you build out your monitoring, ensure you are tracking:

  • The Full Certificate Chain: A leaf certificate might be valid, but if the intermediate CA expires, the connection will still fail. Ensure your monitoring tools evaluate the expiration of every certificate in the chain.
  • Protocol Versions: Flag any endpoints still negotiating TLS 1.0 or 1.1. These protocols are deprecated and vulnerable to attacks.
  • Post-Quantum Cryptography (PQC) Readiness: In late 2024, NIST finalized the first PQC standards (FIPS 203, 204, and 205). Organizations must begin auditing their certificate inventories to prepare for the migration to quantum-safe algorithms. Your monitoring tools should be able to report on the specific signature algorithms (e.g., RSA vs. ECDSA) currently in use across your fleet.

Security and Compliance Implications

Failing to monitor certificate expiration isn't just an operational risk; it is a severe compliance liability.

When a public certificate expires, modern browsers display a massive "Your connection is not private" warning. This trains users to click through security warnings, degrading your organization's security posture and making users highly susceptible

Share This Insight

Related Posts