Skip to content

v1.6.1 — host certificate rotation no longer locks a cluster out of itself

Choose a tag to compare

@colonelpanik colonelpanik released this 08 Aug 06:55
· 151 commits to main since this release
42f6641

Schema v50, unchanged from v1.6.0. No migration.

Fixes

  • A reissued host certificate left the serial recorded in its host row
    stale, and peer trust binds a live row to that serial. Nothing wrote the
    column on rotation, so every daemon refused every peer ("replication RPC
    requires peer mTLS") and replication stopped cluster-wide, with the
    split-brain detector blind for the same reason while workloads kept
    running. A node now re-records its own serial at startup from the
    certificate installed on its own disk, so a rotation converges by
    ordinary replication.
  • An unreadable certificate never overwrites a good recorded serial: a
    local file-permission problem must not become a cluster-wide trust
    downgrade.

Added

  • auth.trust_rotated_peer_certs (default false) — the recovery switch for
    a cluster ALREADY locked out by stale recorded serials, where the
    correction cannot replicate because replication is what is refused. Set
    it on every node, let the re-recorded serials replicate, then set it
    back to false. It relaxes the serial comparison only: a removed host
    stays removed, and a distributable client certificate still cannot act
    as a peer. Revocation is unaffected — the CRL is verified at the TLS
    handshake.

Upgrading

  • Schema-neutral, so this rolls like any ordinary binary upgrade. Running
    domains survive the daemon re-exec. Clusters whose recorded serials are
    already stale need the recovery switch on for one roll, then off.