====== Navodilo: Izdaja certifikata ====== **Trajanje:** ~10 minut \\ **Vloga:** PKI operater \\ **Predpogoj:** Odobren CSR ---- ===== Potek dela ===== flowchart TD A[CSR prejet] --> B{Validacija CSR} B -->|Neveljaven| C[Zavrniti + Zahtevek] B -->|Veljaven| D{Odobritev?} D -->|Ne| E[Zahtevati odobritev] D -->|Da| F[Podpisati certifikat] F --> G{Hibridni način?} G -->|Da| H[Dodati PQ razširitev] G -->|Ne| I[Klasično podpisati] H --> J[Dostaviti] I --> J J --> K[Revizijski dnevnik] style B fill:#fff3e0 style F fill:#e8f5e9 style H fill:#e3f2fd ---- ===== Korak 1: Sprejem in validacija CSR ===== **Kontrolni seznam pred podpisovanjem:** | # | Kontrolna točka | Ukaz | Pričakovano | |---|-----------------|------|-------------| | 1 | Oblika CSR veljavna | ''openssl req -in request.csr -verify -noout'' | ''verify OK'' | | 2 | Dolžina ključa | ''openssl req -in request.csr -text \| grep "Public-Key"'' | ≥2048 bitov (RSA), ≥256 bitov (EC) | | 3 | Subject pravilen | ''openssl req -in request.csr -subject -noout'' | Skladno z zahtevo | | 4 | SANi popolni | ''openssl req -in request.csr -text \| grep -A1 "Subject Alternative"'' | Vsa imena gostiteljev | # Popolno preverjanje CSR openssl req -in request.csr -text -noout -verify ---- ===== Korak 2: Preverjanje odobritve ===== | Tip certifikata | Odobri | Dokumentacija | |-----------------|--------|---------------| | Strežnik (notranji) | Samodejno / Zahtevek | Št. zahtevka | | Strežnik (zunanji) | IT varnost | E-pošta + Zahtevek | | Odjemalec | Vodja oddelka | Obrazec | | Podpisovanje kode | CISO | Pisno | ---- ===== Korak 3: Podpisovanje certifikata ===== ==== Klasični način ==== # Podpisovanje strežniškega certifikata (1 leto) openssl ca -config openssl.cnf \ -extensions server_cert \ -in request.csr \ -out certificate.pem \ -days 365 \ -notext # Zabeležiti serijsko številko openssl x509 -in certificate.pem -serial -noout ==== Hibridni način (PQ) ==== // C# z WvdS.System.Security.Cryptography using var intermediate = new X509Certificate2("intermediate.pfx", "password"); var csr = CertificateRequest.LoadSigningRequest( File.ReadAllBytes("request.csr"), HashAlgorithmName.SHA256); var cert = csr.Create( intermediate, DateTimeOffset.UtcNow, DateTimeOffset.UtcNow.AddDays(365), Guid.NewGuid().ToByteArray(), CryptoMode.Hybrid); // PQ razširitev File.WriteAllText("certificate.pem", cert.ExportCertificatePem()); ---- ===== Korak 4: Dostava ===== | Oblika | Uporaba | Ukaz | |--------|---------|------| | PEM | Linux, Apache | ''cp certificate.pem /output/'' | | PFX | Windows, IIS | ''openssl pkcs12 -export -in certificate.pem -inkey private.key -out certificate.pfx'' | | DER | Java | ''openssl x509 -in certificate.pem -outform DER -out certificate.der'' | # Dostava z verigo cat certificate.pem intermediate.pem > fullchain.pem ---- ===== Korak 5: Dokumentacija ===== **Obvezna polja v zahtevku/dnevniku:** | Polje | Primer | |-------|--------| | Serijska številka | ''01:23:45:67:89:AB:CD:EF'' | | Subject | ''CN=server.example.com'' | | Veljavno do | ''2025-12-15'' | | Izdal | ''Ime operaterja'' | | Št. zahtevka | ''INC-2024-12345'' | | Način | ''Hybrid / Classic'' | ---- ===== Odpravljanje težav ===== | Težava | Vzrok | Rešitev | |--------|-------|---------| | ''unable to load CSR'' | Napačna oblika | ''openssl req -inform DER -in request.der -out request.pem'' | | ''signature verify failed'' | CSR spremenjen | Zahtevati nov CSR | | ''wrong issuer'' | Napačen CA | Preveriti CA certifikat | | ''certificate request failed'' | Konfiguracijska napaka | Preveriti ''openssl.cnf'' | ---- ===== Povezana navodila ===== * [[.:zertifikat-erneuern|Obnova certifikata]] – Za iztekajoke certifikate * [[.:zertifikat-widerrufen|Preklic certifikata]] – Ob ogroženosti * [[sl:int:pqcrypt:szenarien:kurzreferenz:csr|CSR kratka referenca]] – Primeri kode ---- << [[.:start|← Vsakodnevno poslovanje]] | [[.:zertifikat-erneuern|→ Obnova certifikata]] >> ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional// {{tag>runbook zertifikat ausstellen operator}}