nuts-foundation / nuts-foundation/nuts-node

Align TLS certificate policy with AORTA/LSP — OAuth2 endpoints should use public certificates

Open
#4,156 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

LSPxNuts
Dominant language
Go
Stars
28
Forks
23
Avg merge
1d 10h
Merged PRs (30d)
76

Description

Background

In the project-gf Docker image, we add custom CA certificates to support PKIoverheid Private certificates used by LSP parties. Recently, AORTA-GtK switched their OAuth2 issuer from a Sectigo public certificate to a PKIoverheid Private Services certificate (see commit d646c437). This was reflected in the ca-certificates bundle we ship.

The policy tension

The Nuts convention is:

  • OAuth2 / authorization endpoints → public certificate (so non-Nuts issuers/holders/verifiers can resolve DID documents without needing to trust PKIo roots)
  • Data endpoints → PKIoverheid Private certificate

AORTA-GtK now uses a PKIo Private cert on their OAuth2 issuer, which deviates from this convention. This probably happened due to miscommunication somewhere.

Update: it appears AORTA-GtK is actually still using the Sectigo certificate on at least one endpoint: https://ontmedmij-inlog.vzvz.nl/aortagtk/token/v1/00002727. So the situation may be mixed — some endpoints on PKIo Private, some still on Sectigo public. This makes it unclear whether the switch is complete or intentional, and warrants confirmation from AORTA-GtK about which certificate will be used on which endpoints going forward.

Short-term workaround

For LSPxNuts/project-gf: add the relevant PKIo Private CA certificates to the Docker image (already done in d646c437). Since at least one endpoint still uses Sectigo, we need to keep both CA chains in the image for now.

Suggested follow-up

Align on and enforce the certificate policy:

  • OAuth2 / discovery endpoints should use publicly trusted certificates so that parties outside the Nuts network can interact without PKIo trust anchors.
  • Confirm with AORTA-GtK which certificate is used on which endpoint, and whether the PKIo Private cert on the OAuth2 issuer is intentional or a misconfiguration.
  • Communicate this requirement clearly to LSP parties (e.g. AORTA-GtK) so they can correct the certificate on their OAuth2 issuer.
  • Evaluate whether our Docker image should continue to bundle PKIo Private CAs long-term, or whether this should remain an exceptional workaround.

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.

Research direction

Start by reviewing commit d646c437 and the project-gf Docker image changes that added PKIoverheid Private CA certificates. Check the cited AORTA-GtK token endpoint and confirm which certificate is used for OAuth2 and data endpoints. Done means the certificate policy is confirmed with AORTA-GtK and the Docker image's required CA chains are clearly determined.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker
Domain
infrastructure, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.