~~NOTOC~~
====== Scenarij 1.2: Ustvarjanje vmesnega CA ======
**Kategorija:** [[.:start|PKI infrastruktura]] \\
**Kompleksnost:** ⭐⭐⭐ (Srednja) \\
**Predpogoji:** [[.:root_ca_erstellen|Scenarij 1.1: Ustvarjanje korenskega CA]] \\
**Predviden čas:** 20-40 minut
----
===== Opis =====
Ta scenarij opisuje ustvarjanje **vmesnega CA** (tudi Sub-CA ali Issuing-CA), ki ga podpiše korenski CA. Vmesni CA izdaja certifikate končnih entitet in ščiti ključ korenskega CA, ki lahko ostane offline.
**Kaj se ustvari:**
* Par ključev ML-DSA-65 za vmesni CA
* Certificate Signing Request (CSR)
* Vmesni certifikat, podpisan s korenskim CA
* Šifriran zasebni ključ
**Prednosti vmesnega CA:**
* **Varnost:** Korenski CA ostane offline, samo vmesni CA je online
* **Prilagodljivost:** Več vmesnih CA za različne namene (strežnik, odjemalec, podpisovanje kode)
* **Preklic:** Vmesni CA se lahko prekliče brez kompromitacije korenskega
* **Skladnost:** Ustreza najboljšim praksam (CA/Browser Forum, BSI)
**Tipični tipi vmesnih CA:**
* **Server-CA:** Za TLS strežniške certifikate
* **Client-CA:** Za mTLS odjemalske certifikate
* **User-CA:** Za E-pošto/S-MIME certifikate
* **CodeSign-CA:** Za certifikate za podpisovanje kode
* **Device-CA:** Za IoT/certifikate naprav
----
===== Diagram poteka =====
┌─────────────────────────────────────────────────────────────────────────┐
│ USTVARJANJE VMESNEGA CA │
│ │
│ ┌─────────────────────────┐ ┌─────────────────────────┐ │
│ │ VMESNI CA │ │ KORENSKI CA │ │
│ │ (Online sistem) │ │ (Air-Gapped sistem) │ │
│ └─────────────────────────┘ └─────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
┌──────────────┐
│ 1. Init │
└──────┬───────┘
│
▼
┌──────────────┐
│ 2. KeyPair │ ──────► ML-DSA-65 za vmesni
│ generiranje │
└──────┬───────┘
│
▼
┌──────────────┐
│ 3. DN │ ──────► CN=WvdS Server CA
│ ustvarjanje │ O=DATECpro GmbH
└──────┬───────┘
│
▼
┌──────────────┐
│ 4. Razširitve│ ──────► BasicConstraints, KeyUsage, EKU
│ za CSR │ (želene razširitve)
└──────┬───────┘
│
▼
┌──────────────┐
│ 5. CSR │ ──────► PKCS#10 zahtevek
│ ustvarjanje │ Podpisan s ključem vmesnega
└──────┬───────┘
│
│ ══════════════════════════════════════════
│ Prenos CSR (USB ključ, varen kanal)
▼ ══════════════════════════════════════════
┌──────────────┐
│ 6. Korenski │ ──────► nalaganje root-ca.key.pem
│ CA nalaganje │ (Air-Gapped sistem)
└──────┬───────┘
│
▼
┌──────────────┐
│ 7. CSR │ ──────► Preverjanje: DN, podpis, razširitve
│ validacija │
└──────┬───────┘
│
▼
┌──────────────┐
│ 8. Razširitve│ ──────► BC, KU, SKI, AKI, CDP, AIA
│ nastavitev │ (CA določa končne razširitve)
└──────┬───────┘
│
▼
┌──────────────┐
│ 9. Certifikat│ ──────► Korenski CA podpisuje
│ izdaja │ vmesni certifikat
└──────┬───────┘
│
│ ══════════════════════════════════════════
│ Prenos certifikata nazaj
▼ ══════════════════════════════════════════
┌──────────────┐
│ 10. Shramba │ ──────► intermediate-ca.crt.pem
│ │ intermediate-ca.key.pem
└──────┬───────┘
│
▼
┌──────────────┐
│ 11. Veriga │ ──────► ustvarjanje ca-chain.pem
│ ustvarjanje │ (vmesni + korenski)
└──────┬───────┘
│
▼
┌──────────────┐
│ 12. Čiščenje │
└──────────────┘
----
===== Razlike od korenskega CA =====
^ Vidik ^ Korenski CA ^ Vmesni CA ^
| **Issuer** | = Subject (samopodpisan) | = Subject korenskega CA |
| **Podpisal** | Lastni ključ | Ključ korenskega CA |
| **pathLength** | 1 ali 2 | 0 (samo končne entitete) |
| **Veljavnost** | 15-25 let | 8-12 let |
| **AKI** | Ni prisoten | SKI korenskega CA |
| **CDP** | Opcijsko | Obvezno |
| **AIA** | Ni prisoten | OCSP + caIssuers |
| **Lokacija ključa** | Offline / HSM | Online (zaščiteno) |
| **Uporaba** | Samo podpisovanje vmesnih CA | Podpisovanje certifikatov končnih entitet |
----
===== Varnostna opozorila =====
**Zaščita ključa vmesnega CA:**
* Zasebni ključ **šifrirano** shranjen (Argon2id + AES-256-GCM)
* Idealno v **HSM** ali strojnem žetonu
* **Omejen** dostop (samo CA storitev)
* **Revizijsko beleženje** za vse operacije podpisovanja
* Načrtovanje redne **rotacije ključev**
**Najboljše prakse:**
* **pathLength=0** preprečuje dodatne pod-CA pod tem vmesnim CA
* **Ločeni vmesni CA** za različne namene (strežnik, odjemalec, podpisovanje kode)
* **CDP in AIA** vedno nastaviti za preverjanje preklica
* **CSR offline prenos** (USB ključ) na Air-Gapped sistem korenskega CA
* **Certifikatna veriga** (ca-chain.pem) za enostavno namestitev
**Izogibajte se pogostim napakam:**
* **Ne** ustvarjajte vmesnega CA z istim ključem kot korenski
* **Ne** nastavljajte pathLength > 0, če ni želena pod-pod-CA
* **Ne** pozabite AKI (otežuje gradnjo verige)
* **Ne** pozabite CDP/AIA (preverjanje preklica ne bo delovalo)
----
===== Izhodne datoteke =====
^ Datoteka ^ Tip ^ Opis ^
| ''intermediate-ca.csr.pem'' | PKCS#10 | Certificate Signing Request |
| ''intermediate-ca.key.pem'' | PKCS#8 (šifriran) | Šifriran zasebni ključ |
| ''intermediate-ca.crt.pem'' | X.509 | Certifikat vmesnega CA |
| ''ca-chain.pem'' | PEM paket | Vmesni + korenski (za namestitev) |
----
===== Povezani scenariji =====
^ Povezava ^ Scenarij ^ Opis ^
| **Predpogoj** | [[.:root_ca_erstellen|1.1 Ustvarjanje korenskega CA]] | Korenski CA mora obstajati |
| **Naslednji korak** | [[.:trust_store_konfigurieren|1.4 Shramba zaupanja]] | Distribucija korenskega certifikata |
| **Naslednji korak** | [[.:crl_ocsp_infrastruktur|1.6 CRL/OCSP]] | Vzpostavitev preklica |
| **Nato** | [[sl:int:pqcrypt:szenarien:zertifikate:server_cert|3.1 Strežniški certifikat]] | Izdajanje certifikatov končnih entitet |
| **Alternativno** | [[.:ca_hierarchie_aufbauen|1.3 CA hierarhija]] | Več vmesnih CA |
----
<< [[.:root_ca_erstellen|← 1.1 Korenski CA]] | [[.:start|▲ PKI infrastruktura]] | [[.:ca_hierarchie_aufbauen|1.3 CA hierarhija →]] >>
{{tag>scenarij pki vmesni-ca csr ml-dsa-65 veriga aki cdp aia}}
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//