You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 1d06cee
Browse filesBrowse the repository at this point in the historyBrowse files
docs(concepts): ACME and EST travel in the config with write-only secrets
declarative-config said the acme and est blocks never crossed the API.
They do now, with their secrets returned blank and kept on apply, and a
switch waits for a reboot in a maintenance window. ca-roles adds that a
Root refuses both blocks.
Depends on CryptOS-PKI/cryptos-node#286.
Signed-off-by: Bugs5382 <12115015+Bugs5382@users.noreply.github.com>
Copy file name to clipboardExpand all lines: docs/concepts/ca-roles.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -116,6 +116,10 @@ A subordinate issues leaf certificates from leaf profiles (`is_ca: false`) in it
116
116
117
117
SCEP and WSTEP are not available.
118
118
119
+
:::caution[A Root serves no enrolment protocol]
120
+
ACME and EST run on an intermediate or issuing node only. A Root's config with `pki.acme` or `pki.est` is refused by `config apply`, the maintenance-mode install and the first-boot ceremony, so a Root never opens either endpoint.
121
+
:::
122
+
119
123
## Key algorithms
120
124
121
125
`pki.root_key_alg` sets the node's own CA key: `ECDSA-P384`, `RSA-3072` or `RSA-4096`. Despite the name, it applies to every role. The CA key also decides the signature algorithm on everything the node signs, so a platform that only accepts RSA signatures needs an RSA key at every level of its chain.
Copy file name to clipboardExpand all lines: docs/concepts/declarative-config.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -119,7 +119,7 @@ Most of the config is read once, at boot. Two fields are read live, every time t
119
119
- `pki.profiles`, the certificate profiles;
120
120
- `pki.root_leaf_issuance`.
121
121
122
-
A change limited to those two takes effect straight away and reports `requires_reboot=false`. Anything else (network, role, revocation settings, the management link, and so on) is saved but only takes effect on the next boot, and reports `requires_reboot=true`. The node never switches those at runtime.
122
+
A change limited to those two takes effect straight away and reports `requires_reboot=false`. Anything else (network, role, revocation settings, the management link, switching ACME or EST on or off, and so on) is saved but only takes effect on the next boot, and reports `requires_reboot=true`. The node never switches those at runtime, and `cryptosctl status` shows `Reboot: pending` until the reboot.
123
123
124
124
:::warning[A reboot takes the CA offline]
125
125
Restart the node with an orderly shutdown, not a hypervisor hard reset:
@@ -141,10 +141,12 @@ With `pki.allow_unverified_revocation_url: true`, the node issues certificates w
141
141
142
142
`config apply`also prints a warning, without stopping, when a profile's `validity_days` runs past the node's own CA certificate. Certificates from that profile will be cut short to the CA's `notAfter`.
143
143
144
-
## Parts the API does not carry
144
+
## Secrets in the config
145
145
146
-
:::caution[The acme and est blocks do not travel over the API]
147
-
`pki.acme`and `pki.est` hold secrets (account binding keys and enrolment passwords) and are not part of the API's config message. `config get` leaves them out, and `config apply` keeps whatever blocks the node already has. You cannot turn ACME or EST on, off or change them through `config apply` today.
146
+
`pki.acme` and `pki.est` hold secrets: account binding keys and enrolment password digests. They travel in the API's config message, but only one way. `config get` returns them blank, next to their `key_id` or `username`, and a `config apply` that leaves one blank keeps the value the node stores for that identifier. A new identifier needs its value. So the read, edit, apply cycle above works for these blocks too, without the secrets ever coming back out of the node.
147
+
148
+
:::warning[Switching ACME or EST waits for a reboot]
149
+
Adding a protocol's block switches it on and removing it switches it off, but only at the next boot. Plan the reboot for a maintenance window: the node stops issuing while it restarts.
0 commit comments