mTLS — Mutual TLS

Vereist voor alle Generieke Functies Technische Documentatie-diensten. Zonder geldig UZI-certificaat wordt de verbinding op transportniveau geweigerd.

Overzicht 📜 mTLS 🔑 OAuth 👤 PRS 📑 NVI

Wat is mTLS?

Bij gewone TLS verifieert alleen de cliënt de server. Bij Mutual TLS (mTLS) verifieert ook de server de cliënt aan de hand van een client-certificaat. Alle Generieke Functies Technische Documentatie-diensten vereisen mTLS: zonder geldig certificaat wordt de verbinding al op transportniveau geweigerd.

Wat heb je nodig?

  • Client-certificaat (.crt of .pem)
  • Bijbehorende private key (.key)
  • Optioneel: PKCS#12-bundle (.p12) voor Java / .NET

Aanvraagproces

  1. Genereer een CSR (Certificate Signing Request)
  2. Stuur de CSR naar GfModules Beheer
  3. Ontvang het gesigneerde certificaat

CSR genereren met OpenSSL

# Genereer een 4096-bits RSA-sleutelpaar en een CSR
openssl req -newkey rsa:4096 -nodes \
  -keyout client.key \
  -out    client.csr \
  -subj "/C=NL/O=Mijn Organisatie/CN=mijn-app.proeftuin"

# Verifieer de CSR
openssl req -text -noout -verify -in client.csr

Na het opsturen van je CSR, krijg je vanuit GfModules certificaten die alleen geldig zijn op de betreffende omgeving (bijvoorbeeld de Proeftuin). Deze certificaten kunnen niet gebruikt worden voor andere doeleinden en systemen.

Je ontvangt op dit moment twee sets certificaten:

Binnen je UZI certificaat zit een test URA nummer. Dit nummer wordt gebruikt om van en naar te communiceren binnen de verschillende systemen binnen GfModules. De LDN certificaten zijn op dit moment niet nodig voor gebruik en zullen in de toekomst niet meer worden uitgegeven voor de Proeftuin.

Je zult de volgende UZI certificaten ontvangen:

Certificaten gebruiken de volgende chain:

Root CA
Subject
C=NL, L=Den Haag, O=MinVWS, OU=iRealisatie, CN=gfmodules-proeftuin-uzi-ca
Serienummer
5ebc4973add6806aff244587300821b76abdf59d
Fingerprint
82:a6:35:ae:53:0e:f9:ee:22:61:a3:9f:89:cb:c3:30:91:19:fd:17:d3:15:54:f7:ab:76:af:c2:0f:d9:2e:ba
Download CA Certificaat →
Intermediate CA
Subject
C=NL, L=Den Haag, O=MinVWS, OU=iRealisatie, CN=gfmodules-proeftuin-uzi-dev-intermediate
Serienummer
2561750e384cc3037818cc064639fabe20119fd2
Fingerprint
40:86:6a:93:86:bf:38:aa:8e:70:ff:4f:fb:fb:c9:92:8e:19:bd:ad:b6:4f:b4:5e:d6:a5:12:c8:39:ec:28:61
Download Intermediate Certificaat →

Verbinding testen met curl

# Controleer of mTLS-handshake slaagt
curl -v \
  --cert client-uzi-chain.crt \
  --key  client-uzi.key \
  https://oauth.proeftuin.gf.irealisatie.nl/.well-known/oauth-authorization-server

PKCS#12-bundle aanmaken (voor Java / .NET)

openssl pkcs12 -export \
  -in    client-uzi-chain.crt \
  -inkey client-uzi.key \
  -out   client.p12 \
  -name  "gfmodules-client" \
  -passout pass:geheimwachtwoord
Beveilig je private key

Sla de private key nooit op in versiebeheer. Gebruik een secrets-manager (Vault, AWS Secrets Manager, Azure Key Vault) of een OS-sleutelketen.

Volgende: OAuth →