====== 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}}