You revoke a compromised certificate and most browsers keep trusting it. That is not a bug in one client; it is the settled outcome of decades of revocation design. OCSP leaked every visit and failed open, CRLs were too big to fetch, and browsers replaced both with curated sets they push themselves. The web PKI has now made a different choice without writing a protocol for it: shrink the certificate until expiry does the job. This is the architecture of that choice, what it moves onto your renewal pipeline, and what to run while the schedule plays out.
██╗ ██╗███████╗
██║ ██║╚════██║
███████║ ██╔╝
╚════██║ ██╔╝
██║ ██║
╚═╝ ╚═╝
Websites prove who they are with certificates. If a site's secret key is stolen, the owner can ask for the certificate to be cancelled. This article shows that most browsers never hear about the cancellation, and explains why the industry's answer is to make every certificate expire much sooner instead.
| Word you will see | What it means here |
|---|---|
| Certificate | A website's signed ID card that your browser checks before showing a padlock. |
| Private key | The secret that goes with a certificate. Whoever holds it can pretend to be the site. |
| CA | Certificate authority: the company that issues and signs certificates. |
| Revocation | Cancelling a certificate before its end date, for example after a key is stolen. |
| CRL | Certificate revocation list: a signed list of cancelled certificates that a CA publishes. |
| OCSP | A service browsers could ask, one site at a time, whether a certificate was cancelled. |
| Expiry | The end date written in every certificate, after which browsers refuse it. |
Friday, 16:40. A contractor's laptop with a copy of your TLS private key goes missing. You do everything the runbook says. You reissue on a new key, deploy it everywhere you can find, and ask your certificate authority to revoke the old certificate with reason keyCompromise. The CA does it inside the hour. The serial number appears on the next CRL. You close the incident.
Now ask what changed for a visitor whose traffic an attacker can intercept with the stolen key. In Chrome, almost certainly nothing. In Safari, very likely nothing. In Firefox, probably the connection now fails, though not always within two days. For everyone else, the old certificate keeps working until the date printed in its notAfter field. Before 15 March 2026 that date could be 398 days away. Today it can be 200.
That is what Geoff Huston, Chief Scientist at APNIC, demonstrated in April and again at APNIC 62 in Mumbai in September 2026, with a certificate he revoked himself. His conclusion was blunt: "revocation is a failure!" The interesting part for an architect is what the industry did in response, because it was not to fix revocation. The CA/Browser Forum voted to cut maximum certificate lifetime from 398 days to 47 by March 2029, which turns expiry into the revocation mechanism and moves the cost from the verifier to your renewal pipeline.
A CRL is a signed list clients must fetch whole. It grows with every revocation and is published on a cadence of days.
OCSP told the CA which site each IP address visited, at 140,000 requests per second, and clients ignored it when it failed.
Chrome pushes a CRLSet with about 1% of revocations. Firefox pushes CRLite with all of them. Safari's behavior is the least documented.
200 days now, 100 in March 2027, 47 in March 2029. Certificates of seven days or less need not be revocable at all.
Revocation tries to tell every client, everywhere, that something it already holds is now bad. That is a broadcast problem with no deadline. Expiry asks the client one question it can answer offline: is the current time inside this window? Shortening the window converts an unsolved distributed systems problem into a scheduling problem for the subscriber, and scheduling problems are ones operators know how to automate.
The test was simple: cancel a certificate, wait two days, and see whether browsers notice. Chrome and Safari kept trusting it. The two accounts of the test disagree about Firefox.
Huston's April 2026 APNIC blog post describes the experiment precisely. He had Let's Encrypt issue a certificate for revoked.potaroo.net, revoked it with certbot on 21 April 2026, and confirmed the serial number appeared on the CA's CRL. Forty eight hours later he loaded the site in Firefox 148.0.2, Chrome 147.0.7727.117 and Safari 25.4. All three completed the TLS handshake and showed the page.
The September session summary on the APNIC blog describes the same body of work with a different headline result: on a Let's Encrypt certificate under a seven day CRL publication cycle, "Chrome and Safari did not recognize the revocation" while "Firefox did." The two accounts disagree on Firefox, and the section on source conflicts at the end deals with that. They agree on the part that matters for planning: the two browsers with the largest share of traffic do not act on a revocation published only in a CRL.
His motivating example made the stakes concrete. An unauthorized copy of a banking site, www.westpac.com.au, resolved to hosted infrastructure and presented a certificate issued by DigiCert more than nine months earlier. Whatever the history of that certificate, a revocation would only have protected users whose clients checked.
| Browser | Queries OCSP itself | Honors stapled OCSP | Pushed revocation set | Result in the tests |
|---|---|---|---|---|
| Chrome | No | No | CRLSet, a subset | Accepted the revoked certificate in both accounts |
| Safari | Yes | Yes | Not documented in the sources | Accepted it in both accounts; Let's Encrypt no longer runs OCSP |
| Firefox | Yes, until Firefox 142 for DV | Yes | CRLite, all revocations | Accepted it at 48 hours in April; rejected it in the September account |
Read the Safari row carefully. Safari still asks an OCSP responder when a certificate names one. Let's Encrypt certificates have not named one since 7 May 2025, and the responders went dark on 6 August 2025. A client that only knows how to query, talking to a CA that only publishes lists, checks nothing. That gap is a direct consequence of the industry moving faster than every relying party.
Huston's phrase for the timing mismatch: revocation is still same week service in a nanosecond world. A stolen key is usable in seconds. The fastest path from a revocation to a browser that honors it is measured in hours, and the common path is measured in the months left on the certificate.
There are three ways to spread the news that a certificate was cancelled: publish a list (big and slow to update), let browsers ask each time (it reveals what you browse and gets skipped when it is slow), or let the website attach a fresh status note itself (which only helps if the site is honest). Each one has a hole.
Every revocation design answers the same question, "is this serial still good?", by putting the answer somewhere a client can reach it. They differ in who carries the data, when, and what happens when it does not arrive.
The CA publishes a signed list of revoked serial numbers at a URL named in each certificate's crlDistributionPoints extension. The TLS Baseline Requirements (version 2.3.1, dated 4 October 2026) require a CA issuing subscriber certificates to publish a new CRL within 24 hours of recording a revocation, and at least every 4 days otherwise, or every 7 days if all its certificates carry an OCSP pointer. Lists may be sharded so no single file holds the whole population. Entries must stay on the list until the revoked certificate's own expiry date.
The failure is size. A client that wants to check a site must fetch the list for that certificate's shard before it trusts the handshake. Huston's April sample, a Let's Encrypt list updated on 22 April 2026, carried 1,562 serials with a nextUpdate of 1 May, nine days later. Mozilla counts roughly 3,000 active CRLs across the web PKI totaling about 300 MB. Huston's summary of the economics: "CRLs only really work efficiently when nobody revokes certificates."
RFC 6960 lets a client ask a responder about one serial and get a signed answer: good, revoked or unknown. Each response carries thisUpdate and nextUpdate, and the RFC says responses whose nextUpdate has passed "SHOULD be considered unreliable." Huston's description is apt: an OCSP response is "effectively a CRL lookup" done by the CA on the client's behalf.
The failures are privacy, latency, availability and, decisively, what the client does when the responder does not answer. RFC 6960 itself warns that "a vulnerability to denial of service is evident" and that unsigned error responses can be forged. If a client fails closed, the CA's responder becomes a single point of failure for every site it covers. If it fails open, an attacker on the path drops the query and the revoked certificate passes. Clients chose to fail open.
With OCSP stapling, the server fetches its own signed status and attaches it to the handshake. The client makes no query, so nothing leaks and the CA's load falls. The Must Staple certificate extension was meant to close the fail open hole by telling clients to refuse a handshake with no staple.
Two problems sank it. Huston points out the logical one: a server that already knows its certificate is revoked can simply stop serving it, so the staple protects only against a server operator who is the attacker, and that attacker will not staple. Let's Encrypt states the practical one: Must Staple "has failed to get wide browser support after many years," and popular web servers implement stapling in ways that risk downtime. Let's Encrypt stopped issuing it in 2025.
| Property | CRL fetched by client | OCSP queried by client | OCSP stapled | Browser pushed set | Short lifetime |
|---|---|---|---|---|---|
| Who learns the visit | Nobody | The CA, per IP and site | Nobody | Nobody | Nobody |
| Handshake cost | A large download, sometimes | A blocking round trip | None | Local lookup | Clock comparison |
| Freshness | Days | Up to the response lifetime | Up to the response lifetime | Hours, for what is included | Remaining lifetime |
| Behavior when unavailable | Usually skip | Soft fail | Soft fail without Must Staple | Use last good set | Nothing to be unavailable |
| Coverage | Complete | Complete | Complete, if served | CRLSet partial, CRLite complete | Complete |
| Who carries the cost | Client bandwidth | CA infrastructure | Server operator | Browser vendor | Subscriber automation |
The last row is the whole story compressed. Each generation moved the cost to a party better able to pay it, and the final move puts it on the one party that already runs software for this certificate: you.
The largest certificate authority switched off its 'ask us each time' service. It handled enormous traffic, browsers rarely blocked anything based on it, and every question told the authority which site someone was visiting.
Let's Encrypt ran OCSP from launch. In its August 2025 end of life post, it reported the peak load earlier that year: about 340 billion OCSP requests per month, more than 140,000 requests per second handled by the CDN, and about 15,000 per second reaching origin. Akamai donated the CDN capacity for ten years. That is a large, free, global service whose only job was answering a question most browsers had stopped asking.
Let's Encrypt announces the end of OCSP and names privacy as the central reason.
New Must Staple requests fail unless the account has issued one before.
OCSP URLs leave new certificates, which already carry CRL URLs. All Must Staple requests fail.
Responders turned off. Every certificate that named one has already expired.
The privacy argument is stated without hedging. When a client queries OCSP, the CA "immediately becomes aware of which website is being visited from that visitor's particular IP address." Let's Encrypt says it did not retain that data, and then notes the uncomfortable part: data can be kept accidentally, or collected under legal compulsion. A CRL has no such channel because everyone downloads the same file.
The sequencing is worth copying for any protocol retirement. The CA added the replacement first (CRL support arrived in September 2022), stopped advertising the old endpoint in new certificates, waited more than 90 days so that every certificate pointing at it expired, and only then turned it off. The certificate lifetime set the deprecation window. With 47 day certificates, the same retirement would take about seven weeks instead of three months.
OCSP did not fail because responders were slow. It failed because no major client would block a connection when the responder was slow, and an attacker who can intercept TLS can also drop a status query. Once soft fail was the norm, an OCSP check was protection against honest mistakes and nothing more. A security check that the attacker can switch off is a monitoring feature.
Instead of asking authorities, browsers now download cancellation data from their own maker. Chrome's list is small and only covers a hand picked share of cases. Firefox packs every cancellation into a compact file it refreshes twice a day.
Having given up on asking CAs per connection, the two open browser engines built their own distribution channel: crawl every CRL centrally, compress the result, and push it to clients with the browser's update system. They made opposite choices about what to include.
Chromium's documentation describes CRLSets as "the primary means by which Chrome quickly blocks certificates in emergency situations," with a secondary function of carrying some number of non emergency revocations. Google crawls CRLs disclosed to the Common CA Database, and for intermediates those found through Certificate Transparency, then includes "a subset" of the revoked certificates. The same page states that "Online (i.e. OCSP and CRL) checks are not generally performed by Chrome," though enterprise policy can turn OCSP back on. It also notes that the code is public but "the process by which they are generated is not."
Mozilla's measurement of the result: recent CRLSets weigh about 600 kB and include about 1% of all revocations, roughly 35,000 of about 4 million. A CRLSet is a policy about which revocations matter, executed by the browser vendor.
CRLite encodes every revocation from every CRL into a compact probabilistic structure that answers "is this serial revoked?" locally with no false negatives for covered certificates. Mozilla enabled it for all desktop users in Firefox 137. Clients download an average of 300 kB a day, a full snapshot of about 4 MB roughly every 45 days with deltas between, and refresh every 12 hours. Mozilla calls it a thousand times more bandwidth efficient than daily CRL downloads, and contrasts it with CRLSets: half the bandwidth, twice the update frequency, all revocations.
It also measured what OCSP had been costing: OCSP requests blocked the TLS handshake for 100 ms at the median, and median handshake time fell from 56.4 ms to 39.9 ms as CRLite coverage rose to 80%. With that data in hand, Mozilla disabled OCSP for domain validated certificates in Firefox 142.
| Property | CRLSet (Chrome) | CRLite (Firefox) |
|---|---|---|
| Coverage | About 1% of revocations | All revocations on crawled CRLs |
| Size on the wire | About 600 kB per set | About 300 kB a day on average |
| Refresh | Not stated in the Chromium docs | Every 12 hours |
| Selection process | Not public | Mechanical: everything on the CRLs |
| Fallback | OCSP only via enterprise policy | OCSP removed for DV certificates in Firefox 142 |
Mozilla reports that roughly half of all revocations carry no reason code. If inclusion in a curated set depends on the reason, then the reason you give your CA is not paperwork. Revoke for key compromise with keyCompromise, explicitly, so that whatever filter sits between your CA and Chrome has the strongest available signal.
If you cannot reliably tell every browser that a certificate is bad, make every certificate expire soon. The maximum lifetime drops from 398 days to 200, then 100, then 47, and certificates valid for a week or less no longer need to be cancellable at all.
In April 2025 the CA/Browser Forum passed ballot SC081v3. Certificate issuers voted 25 yes, 0 no, 5 abstain. All four certificate consumers voted yes: Apple, Google, Microsoft and Mozilla. The ballot's rationale says the quiet part directly: "Certificate validity periods, and their enforcement by relying parties, are incredibly reliable," and revocation based approaches have problems with scale, reliability and user impact. It describes certificates as "representations of a point in time state of reality."
The current Baseline Requirements carry the schedule in two tables. One limits how long a certificate may live. The other limits how old the domain validation behind it may be.
| Issued on or after | Maximum validity | Domain and IP validation reuse | Identity data reuse |
|---|---|---|---|
| Before 15 March 2026 | 398 days | 398 days | 825 days |
| 15 March 2026 | 200 days | 200 days | 398 days |
| 15 March 2027 | 100 days | 100 days | 398 days |
| 15 March 2029 | 47 days | 10 days | 398 days |
Two details in the text change how you should build. First, the requirements define a day as exactly 86,400 seconds, count any fraction as an extra day, and say certificates "SHOULD NOT be issued for the maximum permissible time by default" for that reason. Expect real certificates at or under 199, 99 and 46 days. Second, the 10 day validation reuse in 2029 is the bigger operational change than the 47 day lifetime. It means the CA must have proven your control of the domain within the last ten days at issuance, so a renewal is a fresh challenge, not a reissue against a cached authorization.
The requirements define a Short lived Subscriber Certificate, for certificates issued from 15 March 2026, as one valid for 7 days (604,800 seconds) or less. For those, section 4.9.1.1 says the CA "MAY support revocation," and the 24 hour and 5 day revocation deadlines that bind every other certificate do not apply. Such certificates need not carry a CRL distribution point if they carry no OCSP pointer either.
Revocation is now formally optional for a whole class of publicly trusted certificates. The rule makers did not make the broadcast faster. They defined a lifetime short enough that the broadcast is no longer worth sending.
Let's Encrypt has published its own staged path. The opt in tlsserver profile moved to 45 day certificates on 13 May 2026. The default classic profile moves to 64 days with a 10 day authorization reuse period on 10 February 2027, then to 45 days with a 7 hour authorization reuse period on 16 February 2028. The shortlived profile, generally available since 15 January 2026, issues certificates valid for 160 hours, and IP address certificates must use it. The announcement for that profile gives the reason in one sentence: "revocation is an unreliable system so many relying parties continue to be vulnerable until the certificate expires."
Note the gap. The default reaches 45 days in February 2028, a year before the Baseline Requirements force 47. If your automation works with Let's Encrypt's default, it will be ready for the mandate early.
No RFC was written for this. The control is a number in a policy document, enforced by root programs that refuse to trust CAs that exceed it, and executed by ACME clients that already exist. It is the rare security improvement that needs no client change at all, because TLS clients already check notAfter, enforcement the ballot itself calls "incredibly reliable."
Short lifetimes mean renewals happen all the time, so they have to be automatic. If renewal breaks, the site stops working on a date you can predict. Anything renewed by hand becomes a risk.
When expiry is the revocation mechanism, renewal is no longer maintenance. It is a production dependency with a deadline, and its failure mode is an outage that starts at a known second. Everything that used to be a quarterly chore becomes a control loop.
RFC 9773, published in 2025, adds a renewalInfo resource to ACME. The client asks, for a given certificate, when it should renew, and the server answers with a suggestedWindow holding a start and an end. The client picks a random time inside it. An optional explanationURL tells the operator why the window moved, and the RFC says clients "SHOULD provide this URL to their operator." A Retry-After header tells the client when to ask again, and here it means both the minimum and the maximum wait.
The motivation section names the revocation case outright: "a CA could suggest that clients renew prior to a mass revocation event." The order field replaces links a renewal to its predecessor, so the CA can track which incident affected certificates have been rotated and can answer 409 alreadyReplaced to a duplicate. ARI is the closest thing the web PKI has to a working revocation channel: it reaches the subscriber, not every relying party, and asks the subscriber to fix it.
Let's Encrypt says it plainly: "renewing at a hardcoded interval of 60 days will no longer be sufficient." Without ARI, it suggests renewing about two thirds of the way through the lifetime. That rule scales: about 30 days into a 45 day certificate, about 107 hours into a 160 hour one. Cron jobs written for 90 day certificates, renewal thresholds like "30 days before expiry," and monitoring that only alerts at 14 days left all quietly turn into outages as lifetimes fall.
Today a Let's Encrypt account can reuse a domain authorization for 30 days. From February 2028 the default is 7 hours, and from March 2029 the Baseline Requirements cap all domain validation reuse at 10 days. Practically, every renewal must complete an HTTP, DNS or TLS ALPN challenge. That makes the challenge path production critical: the DNS API token your ACME client uses, the /.well-known/acme-challenge/ route on every load balancer, the CAA records that must keep naming your CA. Anything that breaks those breaks issuance within days, not months.
Long lived certificates were often copied by hand: into an appliance, a CDN upload form, a partner's VPN, a mobile app pin. Each copy is a renewal you must repeat on the new cadence. Let's Encrypt explicitly says "Manually renewing certificates is not recommended." The inventory question changes from "which certificates expire this quarter?" to "which certificates are not reachable by automation at all?"
DANE is a different idea: publish which key is valid in the secured DNS system and let the DNS cache time decide how long a bad key can last. It works well where you control both ends, such as mail servers, but ordinary browsers do not use it yet.
Huston's alternative is older than the 47 day schedule: put the key binding in DNS and let the cache TTL be the compromise window. DANE, RFC 6698, publishes a TLSA record under the service name that pins a certificate or key, signed with DNSSEC. A resolver may cache it only for the record's TTL, which the zone operator chooses, and RFC 7671 advises choosing TTLs short enough that a lost or compromised key causes only an acceptable disruption.
The operational guidance for DANE, RFC 7671, is radical when read next to the X.509 model. For a DANE-EE(3) record, the server "MUST be considered authenticated even if none of the names in the certificate match," and "the expiration date of the server certificate MUST be ignored." Validity comes from the DNSSEC signatures on the TLSA record. Key rotation follows a cache discipline: add the record for the new key "at least two Times to Live (TTLs) or longer before the new chain is deployed," wait for stale record sets to expire from caches, then switch. Revocation is just removing the record and waiting one TTL.
Huston also points to stapled DANE, where the server supplies its TLSA record and the DNSSEC chain inside the handshake, so the client needs no live DNS query: functionally the same shape as a stapled OCSP response, but with the DNS hierarchy as the trust root.
| Question | Short lived X.509 | DANE with DNSSEC |
|---|---|---|
| Compromise window | Remaining lifetime, days | TLSA TTL, minutes to hours |
| Client change needed | None | Browsers must validate DNSSEC and TLSA |
| Prerequisite at the zone | ACME automation | A signed zone and a validating path |
| Who vouches for the name | A CA after a challenge | The parent zone, through DS records |
| Best fit | The public web, where you control neither end's software | Systems where you control both ends |
The honest objections are about deployment, not design. None of the browser revocation mechanisms described in the sources for this article consult TLSA records, so DANE protects web users only once browsers validate it. It also stakes everything on DNSSEC, which No. 026 in this catalog showed can fail an entire resolver population when a trust anchor goes stale. And a commenter on Huston's April post noted the DNS is already carrying a growing number of record types. Treat DANE as the right model for systems where you control both ends, such as mail transfer and internal service meshes, and short lifetimes as the model for the public web you do not control.
Short X.509 lifetimes and DANE TTLs are the same insight with different trust roots: a credential should be cached only as long as you are prepared to be wrong about it. The web chose the path that needed no client changes, at the price of a compromise window measured in days instead of minutes.
The most important habit: if a key might be stolen, make a new key, not just a new certificate. Then a stolen key stops working when the certificate expires, even if no browser ever hears about the cancellation.
| Failure | How it shows up | Design response |
|---|---|---|
| Renewal job silently stops | Outage at a known second, weeks later | Alert on certificate age against expected renewal point, not on days left |
| Challenge path broken | Renewals fail once reuse windows shrink | Synthetic issuance against the staging CA on every deploy |
| CA outage during renewal window | Orders fail for hours | Renew at two thirds of life; keep a second ACME CA configured |
| Mass revocation at the CA | Thousands of certificates must rotate in days | Honor ARI windows; rotation must be a button, not a project |
| Client trusts an old copy | Revoked key still accepted in Chrome or Safari | Rotate the key, not only the certificate; assume revocation does nothing |
| Non browser client relies on OCSP | VPN or appliance fails or skips checks after OCSP URLs vanish | Test non browser consumers; Let's Encrypt warned specifically about VPNs |
| Pinned certificate in an app | App breaks at every rotation | Pin a key or an intermediate, never a leaf, and ship a backup pin |
The row to internalize is "rotate the key, not only the certificate." Reissuing on the same key after a compromise buys nothing, because the attacker's copy matches the new certificate too. Generate a new key on every renewal by default. Then a compromise is bounded by your renewal interval even when the CA, the CRL and every browser do nothing at all.
Each approach moves the cost to someone: the authority answering questions, the browser downloading lists, or your renewal system. Automated renewal is the only cost that gets cheaper as you grow.
The query model was expensive for someone else. 340 billion OCSP requests a month at Let's Encrypt, served free on donated CDN capacity, to protect clients that mostly did not block on the answer. Mozilla measured the client side too: 100 ms of blocked handshake at the median per OCSP query.
The list model is expensive in bytes. About 300 MB of CRLs across roughly 3,000 lists if a client fetched them daily, against about 300 kB a day for CRLite. Chrome's choice, 600 kB for about 1% of revocations, is cheap because it leaves out almost everything.
The expiry model is expensive in issuance. Renewing at two thirds of life, one certificate needs about 3 issuances a year at a 200 day lifetime, about 5 at 100 days, about 12 at 47 days, and about 82 at 160 hours (8,760 hours divided by roughly 107). A fleet of 1,000 hostnames on the shortlived profile is about 82,000 orders a year, each with a fresh challenge once reuse windows close. That arithmetic is why manual renewal is finished.
Every row in that callout trades one party's cost for another's. The final trade puts it on subscriber automation, which is the only cost that falls as it scales. Once renewal is fully automated, going from 12 issuances a year to 82 costs CPU and API calls, not people. The organizations that will struggle are the ones where a certificate still means a ticket.
You cannot make Chrome read your CRL. You can arrange things so that it does not need to.
List every certificate and mark whether an ACME client renews it unattended. Every "no" is a future outage.
Upgrade clients to ones that support RFC 9773 and surface explanationURL to your alerts.
Make key rotation the default so a stolen key dies with its certificate.
Move a canary service to the 45 day tlsserver profile now, and a stateless one to shortlived.
Issue against the staging CA on every infrastructure change that touches DNS, CAA or routing.
Use keyCompromise when it is true. Firefox will act on it, and curated sets may.
Then treat certificate lifetime as a design input, the way you treat a token TTL. A 160 hour certificate on a stateless edge service with mature automation bounds a key compromise at under a week with no help from any browser. A 200 day certificate on a hand configured appliance bounds it at 200 days, whatever your incident runbook says.
Huston's April 2026 post reports that after 48 hours Firefox 148.0.2, Chrome and Safari all still accepted his revoked certificate. The APNIC blog's September summary of his APNIC 62 talk reports that Chrome and Safari did not recognize the revocation and Firefox did. The September account does not give the timing or version. Both are APNIC published; this article presents both. Mozilla's documented CRLite refresh of every 12 hours would predict detection within 48 hours, so the April result is unexplained by the sources available here.
The April post shows a Let's Encrypt CRL with 1,562 revoked serials. The September summary cites a weekly updated CRL with 17,527. These are likely different shards sampled months apart rather than a contradiction, so neither figure is used here as a population size.
The April post says Chrome has not performed OCSP checks since 2012. The September summary says Chrome stopped relying on OCSP in 2014. The Chromium documentation fetched for this article states current behavior but gives no date. This article avoids the year.
The April post describes CRLite reducing about 6.7 GB of CRL data to a 1.3 MB filter. Mozilla's own August 2025 post describes about 300 MB across roughly 3,000 CRLs, a 4 MB snapshot every 45 days and about 300 kB of daily deltas. The figures likely describe different eras of the web PKI and of CRLite. This article uses Mozilla's numbers for its own system.
The September APNIC summary says Let's Encrypt "has reduced certificate validity from 90 days to 45 days." Let's Encrypt's own schedule shows 45 days only on the opt in tlsserver profile since May 2026, with the default classic profile at 90 days until February 2027 and at 45 days from February 2028. This article uses the CA's schedule.
New deep-dives on systems architecture, delivered when they ship.