Rotating mTLS Certificates Across Clouds Without Dropping Connections
Mutual TLS fails in a particular way during rotation. The new certificate is valid, the old one has not expired yet, and traffic still breaks — because the two sides of a connection stopped trusting each other at differe
Mutual TLS fails in a particular way during rotation. The new certificate is valid, the old one has not expired yet, and traffic still breaks — because the two sides of a connection stopped trusting each other at different moments. In a single cloud that gap is usually minutes. Across clouds, where each platform has its own certificate authority, its own distribution mechanism, and its own reload behaviour, the gap can stretch to hours if nobody designed for it.
The problem is rarely cryptography. It is sequencing.
Two rotations, not one
Every mTLS rotation is actually two separate changes. First, what a service presents: its leaf certificate and key. Second, what a service trusts: the bundle of issuing roots it will accept from peers.
Those two changes must happen in opposite orders depending on direction, and they cannot safely happen at the same time. If a service starts presenting a certificate from a new authority before its peers trust that authority, peers reject it. If a service stops trusting the old authority before peers have stopped presenting certificates from it, it rejects them.
The safe sequence is always the same: widen trust first, wait until the wider trust bundle has actually reached every workload, then change what workloads present, wait again, and only then narrow trust back down. Skipping the waiting steps is where most rotation incidents come from.
Trust bundles do not propagate instantly, and they do not propagate the same way
Each cloud delivers trust material differently. One platform may push a new bundle when a workload restarts. Another may mount it as a file that a sidecar polls. A third may require a deployment to pick it up at all.
That means "the bundle was updated" is three different statements in a three-cloud estate, each true at a different time. A rotation plan that records a single timestamp for the whole estate is recording something that never happened.
Track propagation per platform, and verify it from the workload's point of view — what roots does this running process accept right now — rather than from the control plane's point of view. Control planes report intent. Workloads enforce reality, and they enforce the old reality until the new material is loaded and the process has actually re-read it. Some servers cache the bundle for the lifetime of a connection listener, so a file update alone changes nothing until a reload or a graceful restart.
Long-lived connections hide the change, then expose it all at once
Existing connections are usually not re-authenticated when certificates rotate. A connection established under the old trust keeps working, which makes early testing look reassuring — and misleading.
The break appears later, all at once, when connections churn: a deployment, a load balancer draining a node, a network blip that forces reconnects. Suddenly many clients reconnect under the new rules at the same moment, and any trust mismatch that was latent becomes an outage. This is also why rotation incidents often appear to be caused by an unrelated deploy hours later.
Plan for that. Rotate during a window where forced reconnects can be tested deliberately, in stages — reconnect a small slice of clients first and watch handshake failures before widening. A handshake failure rate, broken down by presenting authority and trusting side, is the signal that tells you which half of the sequence went wrong.
Short-lived certificates reduce one risk and raise another
Automated issuance with lifetimes measured in hours or days makes a missed rotation less catastrophic, because there is no single annual cliff edge, and it limits how long a compromised key stays useful. It also means issuance becomes a production dependency: if the issuer or the distribution path in one cloud stalls, workloads there start failing authentication as their certificates expire, with very little slack.
If certificates are short-lived, monitor time-to-expiry the way latency is monitored — as a distribution, not an average, and alerted well before the shortest lifetime in the estate. And test the issuer-outage case explicitly: what happens in each cloud when no new certificate can be issued for twice the normal renewal interval?
A rotation sequence that survives contact with three clouds
- Inventory every issuing authority in the estate and which workloads present and trust each one. Unknown authorities found in trust bundles are a finding in themselves.
- Publish the new authority into trust bundles everywhere, alongside the old one. Verify, from inside running workloads on each platform, that both are accepted.
- Force a controlled reconnect for a small slice of traffic and confirm handshakes succeed in both directions.
- Start presenting certificates from the new authority, platform by platform, watching handshake failures by authority pair.
- Wait until no workload still presents from the old authority — verified from observed handshakes, not from deployment status.
- Remove the old authority from trust bundles, again platform by platform, with the same workload-level verification.
- Record the measured propagation time for each platform. The next rotation plan should be built from those numbers, not from assumptions.
None of this needs a particular product. It needs the rotation to be treated as a distributed-systems change that happens to involve certificates, with the same staging, observation, and rollback discipline as a schema migration.
Teams that run these estates day to day — including the work described at CloudVerg around VergShield zero-trust controls and VergMesh private connectivity — tend to keep the trust inventory in the same place as the network design, so a new authority or a new cloud cannot be added without both being updated together. However the estate is built, the principle holds: widen trust, prove it arrived, then change what is presented — never the other way round.
Originally published by Dev.to Security. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.