Inhaltsverzeichnis
Scenario 3.1: Emettere certificato server
Categoria: Emettere certificati
Complessità: Media
Prerequisiti: CSR presente, Intermediate-CA
Tempo stimato: 10-15 minuti
Descrizione
Questo scenario descrive l'emissione di un certificato server TLS da parte di una Intermediate-CA. Il certificato consente la crittografia HTTPS per server web, API e altri servizi protetti con TLS.
Cosa viene creato:
- Certificato server X.509 v3
- Firmato con ML-DSA-65 (Post-Quantum)
- Extension per server TLS
Workflow
flowchart LR
CSR[Caricare CSR] --> VERIFY[Verificare CSR]
VERIFY --> EXT[Impostare extension]
EXT --> SERIAL[Generare serial]
SERIAL --> SIGN[Firmare con CA]
SIGN --> EXPORT[Esportare come PEM]
style SIGN fill:#e8f5e9
Esempio codice (C#)
using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ; using var ctx = PqCryptoContext.Initialize(); // Intermediate-CA laden var caCert = ctx.LoadCertificate("intermediate-ca.crt.pem"); var caKey = ctx.LoadPrivateKey("intermediate-ca.key.pem", "CaPassword!"); // CSR laden und verifizieren var csr = ctx.LoadCertificateRequest(File.ReadAllText("server.csr.pem")); if (!csr.VerifySignature()) throw new CryptographicException("Ungültige CSR-Signatur"); // Server-Zertifikat ausstellen var serverCert = ctx.IssueCertificate( csr, issuerCert: caCert, issuerKey: caKey, serialNumber: ctx.GenerateSerialNumber(), validDays: 365, // 1 Jahr extensions: new ExtBuilder() // Basic Constraints: Kein CA .BasicConstraints(ca: false, critical: true) // Key Usage für TLS .KeyUsage(KeyUsageFlags.DigitalSignature | KeyUsageFlags.KeyEncipherment, critical: true) // Extended Key Usage: Server Auth .ExtendedKeyUsage(ExtKeyUsage.ServerAuth) // Subject Key Identifier .SubjectKeyIdentifier(csr.PublicKey) // Authority Key Identifier .AuthorityKeyIdentifier(caCert) // CRL Distribution Point .CrlDistributionPoint("http://crl.example.com/intermediate.crl") // OCSP Responder .AuthorityInfoAccess( ocspUrl: "http://ocsp.example.com", caIssuersUrl: "http://ca.example.com/intermediate.crt" ) .Build() ); // Speichern serverCert.ToPemFile("server.crt.pem"); // Zertifikatskette erstellen var chain = $"{serverCert.ToPem()}\n{caCert.ToPem()}"; File.WriteAllText("server-chain.pem", chain); Console.WriteLine("Server-Zertifikat ausgestellt:"); Console.WriteLine($" Subject: {serverCert.Subject}"); Console.WriteLine($" Issuer: {serverCert.Issuer}"); Console.WriteLine($" Serial: {serverCert.SerialNumber}"); Console.WriteLine($" Gültig bis: {serverCert.NotAfter:yyyy-MM-dd}");
Extension per certificati server
| Extension | Valore | Critical | Descrizione |
|---|---|---|---|
| Basic Constraints | CA=false | Si | Non è un certificato CA |
| Key Usage | digitalSignature, keyEncipherment | Si | Handshake TLS |
| Extended Key Usage | serverAuth | No | Autenticazione server |
| Subject Key Identifier | Hash(PublicKey) | No | ID chiave |
| Authority Key Identifier | CA-SKI | No | Riferimento issuer |
| Subject Alt Name | Nomi DNS | No | Ripreso dal CSR |
| CRL Distribution Points | URL | No | Verifica revoca |
| Authority Info Access | OCSP, CA Issuers | No | Aiuti validazione |
Validità specifiche per settore
| Settore | Validità | Motivazione |
|---|---|---|
| IT standard | 1 anno (365 giorni) | Massimo CA/Browser Forum |
| Energia/SCADA | 3-5 anni | Cicli di manutenzione lunghi |
| Sanità | 1-2 anni | Requisiti compliance |
| Automotive | 2-3 anni | Ciclo vita veicolo |
Raccomandazione: Per siti web pubblici max. 398 giorni (CA/B Forum). Per servizi interni possono essere sensate validità più lunghe.
File di output
server.crt.pem
-----BEGIN CERTIFICATE----- MIIHxjCCBiagAwIBAgIUP7J2kM9x... -----END CERTIFICATE-----
server-chain.pem
-----BEGIN CERTIFICATE----- (Certificato server) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (Intermediate-CA) -----END CERTIFICATE-----
Configurazione Nginx
server { listen 443 ssl; server_name www.example.com; ssl_certificate /etc/nginx/ssl/server-chain.pem; ssl_certificate_key /etc/nginx/ssl/server.key.pem; ssl_protocols TLSv1.3; ssl_prefer_server_ciphers on; }
Scenari correlati
| Relazione | Scenario | Descrizione |
|---|---|---|
| Prerequisito | 2.1 CSR Server | Creare CSR |
| Prerequisito | 1.2 Intermediate-CA | CA firmataria |
| Passo successivo | 10.1 Configurare server TLS | Deploy certificato |
| Correlato | 3.2 Certificato client | Per mTLS |
« ← Panoramica certificati | ↑ Scenari | 3.2 Certificato client → »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: il 30/01/2026 alle 07:18