47-day SSL certificates: the timeline, what breaks and how to get ready.

Public TLS certificates are being cut from a year to a month and a half in three steps. Nothing about your certificate changes on the day; what changes is how often you have to replace it. If a machine already does that, you will barely notice. If a person does, or a box that only takes uploads through a web form, this is the thing to fix before March 2027.

Written by · Published 2026-10-20 · 8 min read

The dates

In April 2025 the CA/Browser Forum, where the certificate authorities and the browser makers agree the rules for public certificates, passed ballot SC-081. It was Apple's proposal, and every major browser voted for it. It sets a falling maximum on how long a publicly trusted TLS certificate may be valid, and on how long a CA may reuse a check that you control the domain:

Issued on or afterMaximum lifetimeDomain validation reuse
Before 15 March 2026398 days398 days
15 March 2026200 days200 days
15 March 2027100 days100 days
15 March 202947 days10 days

The limit applies when a certificate is issued. A one-year certificate bought on 14 March 2026 is valid until March 2027, and nobody can make it stop early. Its replacement is what gets shorter. Most CAs issue a day or so under the limit (199 days at the moment) to leave room for clock skew.

Some CAs are moving faster than the rules. Let's Encrypt, which already issues 90-day certificates, has announced 64-day certificates by default from February 2027 and 45 days from 2028, and offers six-day certificates to anyone who asks.

Why it is happening

Revocation does not work well. When a certificate's key leaks or a CA issues one it should not have, the certificate is revoked, but browsers check revocation patchily or not at all, so a revoked certificate keeps working until it expires. A shorter lifetime is the only revocation that every client honours. The same goes for domains changing hands: a certificate validated for the previous owner should not outlive their ownership by a year.

The other reason is agility. Moving the web to new algorithms, post-quantum ones included, means replacing every certificate. If the whole web already replaces its certificates every few weeks, a change of algorithm is just the next renewal rather than a multi-year project.

What it means in practice

Renewing with a third of the lifetime left, which is what ACME clients do by default, the numbers come out like this:

LifetimeRenewals a yearRenewed every
398 days1 or 2about 9 months
200 daysabout 3about 4 months
100 daysabout 6about 2 months
47 daysabout 12about a month

The validation column catches out more people than the lifetime. Today an organisation can prove control of its domain once and have its CA issue against that for most of a year. From 2029 the proof is good for ten days, so it has to be repeated for nearly every renewal. That is easy for an ACME client answering an HTTP or DNS challenge, and very hard for a process that involves someone clicking a link in an email.

Private CAs are not affected. A certificate from your own internal CA, trusted only by your own machines, can still last as long as you like. The rules are for certificates that browsers trust by default.

What breaks first

In my experience the certificate itself is rarely the problem. What fails is everything around it that assumed it changed once a year:

How to check where you stand

Put each public hostname through the SSL certificate renewal checker. It connects to every address the name resolves to and reads the certificate each one serves. A short certificate from an ACME CA is almost always renewed by a client; one long certificate from a commercial CA usually is not. When one address already serves a newer certificate and another still has the old one, nearly expired, that is the renewed-not-deployed case. It also asks the CA when it wants the certificate renewed (that is ACME Renewal Information).

From a terminal, a loop over your hostnames gives a list to work through:

for h in example.com www.example.com api.example.com; do
  printf '%-24s ' "$h"
  curl -s "https://kirkdiamond.com/tools/cert-renewal?host=$h&format=json" \
    | jq -r '"\(.ready)  \(.automation)  \(.lifetime_days)d  \(.ca)"'
done

Do not forget the names nobody browses to: the mail server's certificate, the VPN endpoint, the API host your mobile app uses, the admin interface on a non-standard port.

How to get ready

If you do one thing this year, find the certificates that are renewed by hand. There are always more than anyone thinks, and March 2027 is the date their renewals double.

All guides · All tools