Problem
When CA_CERT is configured (dclaude:1954-1957):
DOCKER_ARGS+=(
-e "NODE_EXTRA_CA_CERTS=${CA_CERT}"
-e "SSL_CERT_FILE=${CA_CERT}"
)
NODE_EXTRA_CA_CERTS is additive — correct. But SSL_CERT_FILE replaces the trust store for every tool that honors it (curl, Python/requests, wget, openssl, …). With only the corporate CA in that file, any TLS connection not intercepted by the corporate proxy fails verification. Typical breakage: direct-to-internet paths, split-tunnel VPN setups, internal services with public certs — with misleading "certificate verify failed" errors that look like the proxy's fault.
Fix
Append instead of replace: mount the cert and have the entrypoint (already root) run
cp "$CA_CERT" /usr/local/share/ca-certificates/dclaude-corp.crt
update-ca-certificates
Then drop SSL_CERT_FILE entirely — the system bundle covers curl/python/etc., and keep NODE_EXTRA_CA_CERTS for Node (which ignores the system store).
Side benefit: removes the current requirement that the cert live inside MOUNT_ROOT (it could be mounted individually), and stops encouraging corporate CA certs to be committed into project trees.
Found during a full-project code review.
Problem
When
CA_CERTis configured (dclaude:1954-1957):DOCKER_ARGS+=( -e "NODE_EXTRA_CA_CERTS=${CA_CERT}" -e "SSL_CERT_FILE=${CA_CERT}" )NODE_EXTRA_CA_CERTSis additive — correct. ButSSL_CERT_FILEreplaces the trust store for every tool that honors it (curl, Python/requests, wget, openssl, …). With only the corporate CA in that file, any TLS connection not intercepted by the corporate proxy fails verification. Typical breakage: direct-to-internet paths, split-tunnel VPN setups, internal services with public certs — with misleading "certificate verify failed" errors that look like the proxy's fault.Fix
Append instead of replace: mount the cert and have the entrypoint (already root) run
cp "$CA_CERT" /usr/local/share/ca-certificates/dclaude-corp.crt update-ca-certificatesThen drop
SSL_CERT_FILEentirely — the system bundle covers curl/python/etc., and keepNODE_EXTRA_CA_CERTSfor Node (which ignores the system store).Side benefit: removes the current requirement that the cert live inside
MOUNT_ROOT(it could be mounted individually), and stops encouraging corporate CA certs to be committed into project trees.Found during a full-project code review.