nuts-foundation / nuts-foundation/nuts-node
Allow extending HTTP client trust bundle with additional CA certs from a directory
@reinkrul is already working on this.
Since Jun 18, 2026.
- Dominant language
- Go
- Stars
- 28
- Forks
- 23
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 76
Description
Problem
The HTTP client (used for OAuth2 endpoints, OpenID4VCI/VP, etc.) trusts the OS CA bundle. That bundle in the Nuts node Docker image doesn't include the CAs of the AORTA-GtK issuer. Current workaround: rebuild the Docker image with ca-certificates installing the extra CAs — annoying for every new trust anchor.
Note: this is distinct from tls.truststorefile, which is the Nuts trust bundle for gRPC (PKIOverheid). We do not want to conflate the two.
Proposal
Let the HTTP client load additional trusted CAs from a configured directory at startup, appended to the OS-sourced pool.
- Config key under the existing
httpclient.*namespace, e.g.httpclient.tls.extracertsdir. - Docker image: default to a known path (e.g.
/etc/nuts/http-trust.d/) mountable as a volume — drop PEM files in, restart, done. - Native binary: directory is optional; missing directory is not an error.
- Load all
*.pem/*.crtfiles; log subject + SHA-256 fingerprint of each added CA for auditability.
Out of scope
- Hot reload (restart is fine).
- Affecting the gRPC trust bundle (
tls.truststorefile). - Per-endpoint trust scoping.
Context
Surfaced while integrating with AORTA-GtK; patched by rebuilding the image — not sustainable.
Notes
New feature; also add to (unreleased) release notes
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.