~~NOTOC~~ ====== 3. Issue Certificates ====== **Scenarios:** 5 \\ **FFI Functions:** ~35 \\ **Status:** Planned This category covers all scenarios for issuing end-entity certificates. Server, client, code-signing, and S/MIME certificates with Post-Quantum algorithms. ---- ===== Scenarios ===== ^ ID ^ Scenario ^ Description ^ Complexity ^ Status ^ | [[.:server_cert|3.1]] | Server Certificate | Issue TLS/HTTPS server certificate | *** | Planned | | [[.:client_cert|3.2]] | Client Certificate | mTLS client authentication | *** | Planned | | [[.:codesign_cert|3.3]] | Code-Signing Certificate | Software signing | *** | Planned | | [[.:smime_cert|3.4]] | S/MIME Certificate | Email encryption and signing | *** | Planned | | [[.:wildcard_cert|3.5]] | Wildcard Certificate | *.domain.com certificates | **** | Planned | ---- ===== Certificate Types ===== flowchart TB CA[Intermediate CA] --> |issues| SRV[Server Certificate] CA --> |issues| CLI[Client Certificate] CA --> |issues| CS[Code-Signing] CA --> |issues| SM[S/MIME] SRV --> |used for| TLS[TLS/HTTPS] CLI --> |used for| MTLS[mTLS Auth] CS --> |used for| SIGN[Software Signature] SM --> |used for| MAIL[Email Security] style CA fill:#e8f5e9 style SRV fill:#e3f2fd style CLI fill:#fff3e0 style CS fill:#fce4ec style SM fill:#f3e5f5 ---- ===== Key Usage per Certificate Type ===== ^ Type ^ Key Usage ^ Extended Key Usage ^ Validity ^ | Server | digitalSignature, keyEncipherment | serverAuth | 1-2 years | | Client | digitalSignature | clientAuth | 1-2 years | | Code-Signing | digitalSignature | codeSigning | 2-3 years | | S/MIME | digitalSignature, keyEncipherment | emailProtection | 1-2 years | ---- ===== Industry-Specific Requirements ===== ^ Industry ^ Certificate Type ^ Specifics ^ | **Energy/SCADA** | Server | Long validity (5+ years), offline validation | | **Healthcare** | Client | gematik OIDs, eGK compatibility | | **Automotive** | Server + Client | V2X-specific extensions | | **Industry 4.0** | Server | OPC UA compatible, IEC 62443 | ---- ===== Quick Start Code ===== using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ; // Load CSR var csr = ctx.LoadCertificateRequest("server.csr.pem"); // Sign with Intermediate CA using var serverCert = ctx.IssueCertificate( csr, issuerCert: intermediateCaCert, issuerKey: intermediateCaKey, serialNumber: ctx.GenerateSerialNumber(), validDays: 365, extensions: new ExtBuilder() .BasicConstraints(ca: false) .KeyUsage(KeyUsageFlags.DigitalSignature | KeyUsageFlags.KeyEncipherment) .ExtendedKeyUsage(ExtKeyUsage.ServerAuth) .SubjectKeyIdentifier(csr.PublicKey) .AuthorityKeyIdentifier(intermediateCaCert) .CrlDistributionPoint("http://crl.example.com/intermediate.crl") .Build() ); serverCert.ToPemFile("server.crt.pem"); -> //Complete example:// [[.:server_cert|Scenario 3.1]] ---- ===== Related Categories ===== ^ Category ^ Relationship ^ | [[.:csr:start|2. CSR]] | CSR as input | | [[.:verwaltung:start|4. Manage Certificates]] | Manage issued certificates | | [[.:tls:start|10. TLS/mTLS]] | Deploy server certificates | ---- << [[en:int:pqcrypt:szenarien:csr:start|<- 2. CSR]] | [[en:int:pqcrypt:szenarien:start|^ Scenarios]] | [[.:verwaltung:start|4. Manage Certificates ->]] >> ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional// {{tag>category certificates issue server client codesigning}}