====== Scenarij 3.2: Izdajanje odjemalskega certifikata ====== **Kategorija:** [[.:start|Izdajanje certifikatov]] \\ **Kompleksnost:** ⭐⭐⭐ (Srednje-visoka) \\ **Predpogoji:** CSR na voljo, Intermediate-CA \\ **Predviden čas:** 10-15 minut ---- ===== Opis ===== Ta scenarij opisuje izdajanje **odjemalskega certifikata** za mTLS (Mutual TLS) avtentikacijo. Odjemalski certifikati omogočajo avtentikacijo odjemalcev pri strežnikih brez uporabe gesel. **Primeri uporabe:** * mTLS avtentikacija API-jev * Avtentikacija IoT naprav * Avtentikacija uporabnikov v podjetju * Avtentikacija mikrostoritev ---- ===== Primer kode (C#) ===== using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ; using var ctx = PqCryptoContext.Initialize(); var caCert = ctx.LoadCertificate("user-ca.crt.pem"); var caKey = ctx.LoadPrivateKey("user-ca.key.pem", "CaPassword!"); var csr = ctx.LoadCertificateRequest(File.ReadAllText("client.csr.pem")); // Izdajanje odjemalskega certifikata var clientCert = ctx.IssueCertificate( csr, issuerCert: caCert, issuerKey: caKey, serialNumber: ctx.GenerateSerialNumber(), validDays: 365, extensions: new ExtBuilder() .BasicConstraints(ca: false, critical: true) // Key Usage: Samo digitalSignature! .KeyUsage(KeyUsageFlags.DigitalSignature, critical: true) // Extended Key Usage: Client Auth .ExtendedKeyUsage(ExtKeyUsage.ClientAuth) .SubjectKeyIdentifier(csr.PublicKey) .AuthorityKeyIdentifier(caCert) .Build() ); clientCert.ToPemFile("client.crt.pem"); ---- ===== Razlika od strežniškega certifikata ===== ^ Lastnost ^ Strežniški certifikat ^ Odjemalski certifikat ^ | Extended Key Usage | serverAuth | clientAuth | | Key Usage | digitalSignature + keyEncipherment | samo digitalSignature | | Subject Alt Name | DNS imena | E-pošta ali UPN (opcijsko) | | Tipična veljavnost | 1 leto | 1-2 leti | ---- ===== Povezani scenariji ===== ^ Povezava ^ Scenarij ^ Opis ^ | **Predpogoj** | [[sl:int:pqcrypt:szenarien:csr:csr_client|2.2 Client-CSR]] | Ustvarjanje CSR | | **Naslednji korak** | [[sl:int:pqcrypt:szenarien:tls:mtls_setup|10.2 mTLS nastavitev]] | Namestitev certifikata | | **Povezano** | [[.:server_cert|3.1 Strežniški certifikat]] | Za mTLS strežnik | ---- << [[.:server_cert|← 3.1 Strežniški certifikat]] | [[.:start|↑ Pregled certifikatov]] | [[.:codesign_cert|3.3 Code-Signing certifikat →]] >> {{tag>scenarij certifikat odjemalec mtls avtentikacija}} ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//