mTLS — Mutual TLS
Vereist voor alle Generieke Functies Technische Documentatie-diensten. Zonder geldig UZI-certificaat wordt de verbinding op transportniveau geweigerd.
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 (
.crtof.pem) - Bijbehorende private key (
.key) - Optioneel: PKCS#12-bundle (
.p12) voor Java / .NET
Aanvraagproces
- Genereer een CSR (Certificate Signing Request)
- Stuur de CSR naar GfModules Beheer
- 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:
- LDN certificaten
- UZI 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:
[naam]-uzi-chain.crt— Jouw certificaat plus de bijbehorende chain certificaten.[naam]-uzi.crt— Jouw certificaat zonder chain certificaten.uzi-ca.crt— Het root CA certificaat van de Proeftuin.
Certificaten gebruiken de volgende chain:
- 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
- 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
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-serverPKCS#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
Sla de private key nooit op in versiebeheer. Gebruik een secrets-manager (Vault, AWS Secrets Manager, Azure Key Vault) of een OS-sleutelketen.