Inhaltsverzeichnis
Scenarij 2.2: Kreiranje klijentskog CSR
Kategorija: Zahtjevi za certifikat (CSR)
Složenost: ⭐⭐ (Srednja)
Preduvjeti: Par ključeva dostupan
Procijenjeno vrijeme: 5-10 minuta
Opis
Ovaj scenarij opisuje kreiranje Certificate Signing Request (CSR) za klijentski certifikat. Klijentski certifikati koriste se za mTLS autentifikaciju, Smart Card prijavu ili API pristup.
Što se kreira:
- ML-DSA-65 par ključeva
- CSR s klijentskim DN i ekstenzijama
- Extended Key Usage: clientAuth
Slučajevi uporabe:
- mTLS API autentifikacija
- VPN pristup
- Smart Card / PIV
- Komunikacija između servisa
Razlika Server vs. Klijent CSR
| Aspekt | Server-CSR | Klijent-CSR |
|---|---|---|
| Extended Key Usage | serverAuth | clientAuth |
| Subject | DNS ime (CN) | Ime korisnika/servisa |
| SAN | DNS imena, IP-ovi | E-mail, UPN |
| Key Usage | digitalSignature, keyEncipherment | digitalSignature |
Primjer koda (C#)
using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ; using var ctx = PqCryptoContext.Initialize(); // Par ključeva za klijenta using var clientKey = ctx.GenerateKeyPair(PqAlgorithm.MlDsa65); // DN za korisnika ili servis var dn = new DnBuilder() .AddCN("Ivan Horvat") // ili ime servisa .AddO("Example d.o.o.") .AddOU("Razvoj") .AddC("HR") .AddEmail("ivan.horvat@example.com") .Build(); // Ekstenzije za klijentski certifikat var extensions = new ExtBuilder() .SubjectAlternativeName(new[] { "email:ivan.horvat@example.com", "upn:ivan.horvat@example.local" // Windows UPN }) .KeyUsage(KeyUsageFlags.DigitalSignature) .ExtendedKeyUsage(ExtKeyUsage.ClientAuth) .Build(); // Kreiranje CSR var csr = ctx.CreateCertificateRequest(clientKey, dn, extensions); // Spremanje File.WriteAllText("client.csr.pem", csr.ToPem()); File.WriteAllText("client.key.pem", clientKey.ToEncryptedPem("ClientPassword!")); Console.WriteLine("Klijentski CSR kreiran"); Console.WriteLine($"Subject: {csr.Subject}");
CSR za servisni račun
Za komunikaciju između servisa:
var dn = new DnBuilder() .AddCN("payment-service") .AddO("Example d.o.o.") .AddOU("Mikroservisi") .Build(); var extensions = new ExtBuilder() .SubjectAlternativeName(new[] { "dns:payment-service.internal", "dns:payment-service.prod.svc.cluster.local" // Kubernetes }) .KeyUsage(KeyUsageFlags.DigitalSignature) .ExtendedKeyUsage(ExtKeyUsage.ClientAuth) .Build();
Parametri
Extended Key Usage za klijente
| OID | Naziv | Uporaba |
|---|---|---|
| 1.3.6.1.5.5.7.3.2 | clientAuth | mTLS klijent |
| 1.3.6.1.4.1.311.20.2.2 | smartcardLogon | Windows Smart Card |
| 1.3.6.1.5.5.7.3.4 | emailProtection | S/MIME (opcionalno) |
Povezani scenariji
| Povezanost | Scenarij | Opis |
|---|---|---|
| Sljedeći korak | 3.2 Klijentski certifikat | Potpisivanje CSR od CA |
| Povezano | 9.1 mTLS Client-Auth | Korištenje certifikata |
| Alternativa | 2.1 Server-CSR | Za server |
« ← 2.1 Server-CSR | ↑ Pregled CSR | 2.3 Multi-SAN CSR → »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: 30.01.2026. u 00:19