07/24/2026 | Press release | Distributed by Public on 07/23/2026 18:38
If there is one universal law in Internet infrastructure, it is that no good intention goes unpunished by the practical realities of legacy software maintenance.
Recently, around mid-2026, for those keeping score, we began receiving a trickle of polite, if frustrated, user complaints concerning certificate validation failures on a few of our sites, most notably the CIDR Report. The error messages were classic Public Key Infrastructure (PKI) friction - valid site, valid dates, but a client throwing up its hands in disgust at its inability to validate the chain of trust.
As is typical with the web's PKI, the failure wasn't a single catastrophic bug, but rather the slow-motion collision of a well-meaning optimization on one side of the Internet, and a slumbering distribution ecosystem on the other.
The recipe for disruption
How do you break standard Transport Layer Security (TLS) validation for some fraction of the Internet? It apparently takes three distinct ingredients:
While Apple's platforms and Microsoft's platforms keep their system CA trust stores refreshed with clockwork regularity, other distribution release cycles tell a different story. Debian, for example, hadn't updated its default package since early 2025 - a gap that persisted even into recent builds of the recently released Debian 13.
Consequently, any client operating on an unpatched or conservatively maintained distribution attempts to validate the new intermediate signature against a local trust store that simply hasn't heard of it yet. The result? Validation fails, connection aborts, and the web access fails.
The remedy: Dual-stack certificates
The web protocol suite, in its infinite wisdom, accounts for this. Most modern HTTP servers (including Apache) happily support loading dual certificates. They'll serve an ECDSA certificate to modern clients that support the new chain, and fall back to an RSA certificate signed by the ubiquitous, battle-tested chain for older or lagging trust stores.
Achieving this with requires two separate issuance calls and a precise set of parameters.
Step 1: Issue the standard ECDSA certificate
First, let certbot fetch the modern, default ECDSA certificate as usual:
Step 2: Issue the legacy RSA fallback certificate
To obtain the legacy RSA certificate alongside the primary one, you must explicitly request the key type, pin the preferred chain, and - crucially - assign a distinct . If you forget , will helpfully overwrite your newly minted ECDSA cert.
Note: Pay close attention to two flags here: forces the ACME server to hand back the older path, and keeps the local file structures completely isolated.
Web server integration
Once issued, you will need to configure Apache to point to both pairs of certs and keys within the block:
When a client initiates a TLS handshake, Apache will negotiate the best cipher suite and present the appropriate certificate chain based on the client's advertised capabilities.
A plague on all your houses!
Once Apache is restarted and tests pass on whatever devices you can lay your hands on, you are free to curse the CA ecosystem, operating system packagers, and the inherent fragility of global PKI, at your leisure.
It won't update Debian's certificate trust store any faster, but it is an essential part of the modern network administrator's ritual.
The views expressed by the authors of this blog are their own and do not necessarily reflect the views of APNIC. Please note a Code of Conduct applies to this blog.