nuts-foundation / nuts-foundation/nuts-node

Allow extending HTTP client trust bundle with additional CA certs from a directory

Open
#4,285 1 comment 0 reactions 1 assignee View on GitHub

@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 / *.crt files; 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.