swarm-bao-pki: sign every other hive's three store leaves
The store host's `swarm-bao-pki` now also signs, for every hive in `swarm.hives` other than its own, the reader (`<hive>`), queue-agent (`<queueAgentCommonNamePrefix>-<hive>`) and gateway-leaf (`<hiveLeafCommonNamePrefix>-<hive>`) leaves, into /var/lib/swarm-bao-pki/hives/<hive>/ with the basenames the own hive's leaves use. Same CA, same `signLeaf`, idempotent on absence like every other leaf in the unit. `signLeaf` now takes the CA from the top of the PKI directory rather than from the leaf's directory; every existing caller passed that directory, so their output is unchanged. The operator still copies the files to the other hive's host and names them in config; only the openssl step against the CA goes away (mara on #5016, c95685: "ok mint"). Closes #5016
This commit is contained in:
parent
be6036b216
commit
48a728df17
6 changed files with 84 additions and 14 deletions
|
|
@ -103,8 +103,23 @@ certificates come from a real internal CA; the store has no opinion about
|
|||
which. A host that does **not** deploy the store names the reader's three
|
||||
itself, plus a pair for every principal it runs — see
|
||||
[per-principal identities](secrets.md#per-principal-identities) for the list.
|
||||
The operator issues those leaves out of band; they're the credentials the
|
||||
store can't hand you, being what opens it.
|
||||
They're the credentials the store can't hand you, being what opens it, so the
|
||||
store's host signs them and the operator copies them to the host that needs
|
||||
them and names them in config. The service principals' leaves are at the top of
|
||||
`/var/lib/swarm-bao-pki/`, named after the principal.
|
||||
|
||||
For every hive in `swarm.hives` other than its own, the store's host signs
|
||||
that hive's three leaves into `/var/lib/swarm-bao-pki/hives/<hive>/`:
|
||||
|
||||
| file | subject | name it in |
|
||||
| ---------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------- |
|
||||
| `client.pem`, `client-key.pem` | `<hive>` | `deploy.bao.clientCertFile`, `.clientKeyFile` |
|
||||
| `queue-agent.pem`, `queue-agent-key.pem` | `<deploy.bao.queueAgentCommonNamePrefix>-<hive>` | `deploy.bao.queueAgentClientCertFile`, `.queueAgentClientKeyFile` |
|
||||
| `hive-leaf.pem`, `hive-leaf-key.pem` | `<deploy.bao.hiveLeafCommonNamePrefix>-<hive>` | `deploy.hive-controller.tls.baoHiveIdentityCertFile`, `.baoHiveIdentityKeyFile` |
|
||||
|
||||
Copy `/var/lib/swarm-bao-pki/ca.pem` with them and name it in
|
||||
`deploy.bao.serverCaFile`. A hive added to `swarm.hives` gets its directory on
|
||||
the store host's next deploy; a leaf already there is never re-signed.
|
||||
|
||||
⚠️ Not the gateway's HTTPS certificates and not the store's `pki` root — this is **mTLS
|
||||
between services and the store**, a separate trust domain, because a store
|
||||
|
|
|
|||
Loading…
Reference in a new issue