Inhaltsverzeichnis
Scenarij 2.2: Ustvarjanje odjemalčevega CSR
Kategorija: Zahteve za certifikate (CSR)
Kompleksnost: 2/5 (Srednja)
Predpogoji: Par ključev na voljo
Ocenjeni čas: 5-10 minut
Opis
Ta scenarij opisuje ustvarjanje Certificate Signing Request (CSR) za odjemalčev certifikat. Odjemalčevi certifikati se uporabljajo za mTLS-overitev, prijavo s pametno kartico ali dostop do API-ja.
Kaj se ustvari:
- ML-DSA-65 par ključev
- CSR z odjemalčevim DN in razširitvami
- Extended Key Usage: clientAuth
Primeri uporabe:
- mTLS API-overitev
- Dostop VPN
- Pametna kartica / PIV
- Storitev-do-storitve komunikacija
Razlika med strežniškim in odjemalčevim CSR
| Vidik | Strežniški CSR | Odjemalčev CSR |
|---|---|---|
| Extended Key Usage | serverAuth | clientAuth |
| Subject | DNS-ime (CN) | Ime uporabnika/storitve |
| SAN | DNS-imena, IP-ji | E-pošta, UPN |
| Key Usage | digitalSignature, keyEncipherment | digitalSignature |
Primer kode (C#)
using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ; using var ctx = PqCryptoContext.Initialize(); // Par ključev za odjemalca using var clientKey = ctx.GenerateKeyPair(PqAlgorithm.MlDsa65); // DN za uporabnika ali storitev var dn = new DnBuilder() .AddCN("Janez Novak") // ali ime storitve .AddO("Example d.o.o.") .AddOU("Razvoj") .AddC("SI") .AddEmail("janez.novak@example.com") .Build(); // Razširitve za odjemalčev certifikat var extensions = new ExtBuilder() .SubjectAlternativeName(new[] { "email:janez.novak@example.com", "upn:janez.novak@example.local" // Windows UPN }) .KeyUsage(KeyUsageFlags.DigitalSignature) .ExtendedKeyUsage(ExtKeyUsage.ClientAuth) .Build(); // Ustvarjanje CSR var csr = ctx.CreateCertificateRequest(clientKey, dn, extensions); // Shranjevanje File.WriteAllText("client.csr.pem", csr.ToPem()); File.WriteAllText("client.key.pem", clientKey.ToEncryptedPem("OdjemalčevoGeslo!")); Console.WriteLine("Odjemalčev CSR ustvarjen"); Console.WriteLine($"Subject: {csr.Subject}");
CSR za storitveni račun
Za storitev-do-storitve komunikacijo:
var dn = new DnBuilder() .AddCN("payment-service") .AddO("Example d.o.o.") .AddOU("Mikrostoritve") .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 odjemalce
| OID | Ime | Uporaba |
|---|---|---|
| 1.3.6.1.5.5.7.3.2 | clientAuth | mTLS odjemalec |
| 1.3.6.1.4.1.311.20.2.2 | smartcardLogon | Windows pametna kartica |
| 1.3.6.1.5.5.7.3.4 | emailProtection | S/MIME (opcijsko) |
Povezani scenariji
| Povezava | Scenarij | Opis |
|---|---|---|
| Naslednji korak | 3.2 Odjemalčev certifikat | Podpis CSR s strani CA |
| Povezano | 9.1 mTLS Client-Auth | Uporaba certifikata |
| Alternativa | 2.1 Strežniški CSR | Za strežnike |
« 2.1 Strežniški CSR | Pregled CSR | 2.3 Multi-SAN CSR »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: dne 30.01.2026 ob 01:39