Certificate Lifecycle Service  ·  View 17 of 21  ·  Operations

Authority Rotation and Policy Release

How a new issuing authority reaches the estate without breaking the half of it that has not heard yet.

Editable source SVG draw.io All views
Author Policy pull request hierarchy · profiles New intermediate ceremony scheduled Review Two-person approval Constraint check EKU · name constraints Distribute trust Bundle builder signed, versioned Push to relying parties Confirm coverage Version reports target 100% Rotation gate blocks below 100% Enable issuance New intermediate live Canary identity issued and probed Drain the old Old intermediate trusted, not issuing Retire at last expiry bounded by leaf life unreported party Authority Rotation and Policy Release Application we own Security / platform Decision point Interface / broker failure / alternate A relying party that cannot report its bundle version blocks the rotation by name. That is the mechanism which stops the classic failure: issuing from an authority half the estate does not yet trust. v 1.0 · owner Security Platform Architecture · date 2026-09

The gate

  • Issuance from a new authority is blocked until every relying party has reported the trust bundle version containing it. The gate is mechanical, not procedural.
  • A relying party that cannot report its bundle version blocks the rotation by name. That is a deliberate forcing function: an unreportable consumer is an architectural gap, not an inconvenience.

Draining, not cutting over

  • The outgoing intermediate stays trusted while it stops issuing, and retires when its longest-lived leaf expires naturally — bounded by leaf lifetime, which is 24 hours for workloads.
  • A canary identity is issued and probed under the new authority before anything else is, so the first real leaf is not the experiment.

Assumptions

  • Trust bundle distribution to 100% of reporting relying parties: ≤ 4 hours p95.
  • Policy is a reviewed pull request with two-person approval; constraint checks (EKU, name constraints, path length) run before merge, not at issuance time.