Skip to content

Commit 0613475

Browse files
simonwalzclaude
andcommitted
fix(console): netcheck - a vendor's customer cannot set custom_ca_certs
CuOS is also how vendors build images for their customers, and those customers do not manage the system configuration. Option b for an unknown CA now names both ways: ask the vendor to include the CA in the image, or add it to custom_ca_certs where the configuration is your own. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Simon Walz <contact@simonwalz.de>
1 parent 98a9fdc commit 0613475

3 files changed

Lines changed: 10 additions & 7 deletions

File tree

‎docs/common/cuos-api.md‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,13 @@ failure behind it.
151151
connection. Three more probes narrow it down: without the post-quantum key
152152
share (a middlebox that cannot handle the larger ClientHello), without a
153153
server name and with a neutral one (a filter by server name).
154-
- **Certificate / CA.** A public CA is OK. A CA from `custom_ca_certs` is a
155-
**warning** — TLS inspection is a supported mode, as update images are
156-
verified by digest, not by trusting the connection. Any other CA is an error
157-
with two ways out: exempt the registry from inspection, or add the inspection
158-
CA to `custom_ca_certs`.
154+
- **Certificate / CA.** A public CA is OK. A CA the device trusts beyond the
155+
public ones, from its image or from `custom_ca_certs`, is a **warning**: TLS
156+
inspection is a supported mode, as update images are verified by digest, not
157+
by trusting the connection. Any other CA is an error
158+
with two ways out: exempt the registry from inspection, or have the inspection
159+
CA added to the device — by its vendor, in the image, or in `custom_ca_certs`
160+
where the customer manages the system configuration.
159161
- **Credentials** are checked by a `docker login` through the docker daemon,
160162
into a temporary client configuration — the daemon is what pulls the update,
161163
with its own TLS implementation.

‎system/cuos/netcheck.sh‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,7 @@ check_cert_ca() {
686686
record cert_ca error "issued by an unknown CA (TLS inspection?)" \
687687
"The connection is probably inspected by a device whose CA this device does not trust. Two options, both supported:
688688
a) Exempt ${HOST} from TLS inspection.
689-
b) Add the CA certificate of the inspection to custom_ca_certs in the system configuration of the device.
689+
b) Have the CA certificate of the inspection added to the device: ask the vendor of the device to include it in its image, or, if you manage the system configuration of the device yourself, add it to custom_ca_certs.
690690
Note: with b) the inspection infrastructure sees this traffic, credentials included, in clear text; securing it is your responsibility."
691691
;;
692692
*)

‎system/cuos/netcheck.test.sh‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,8 @@ MOCK_SYS="60 20"
285285
run
286286
expect "unknown CA: error" "[ERROR]" line "Certificate / CA"
287287
expect "unknown CA: option a" "yes" has "a) Exempt registry.example.org from TLS inspection."
288-
expect "unknown CA: option b" "yes" has "b) Add the CA certificate of the inspection to custom_ca_certs"
288+
expect "unknown CA: option b, the vendor" "yes" has "vendor of the device to include it in its image"
289+
expect "unknown CA: option b, custom_ca_certs" "yes" has "add it to custom_ca_certs"
289290
expect "unknown CA: the hostname is still checked" "[OK]" line "Hostname"
290291
expect "unknown CA: the connection is skipped" "[SKIPPED]" line "TLS connection"
291292

0 commit comments

Comments
 (0)