====== Vzporedna operacija ======
**Kompleksnost:** Srednja \\
**Trajanje:** Neomejeno (dokler se klasičnega ne ugasne) \\
**Tveganje:** Nizko
Hkratno upravljanje klasičnega in post-kvantnega PKI za maksimalno združljivost.
----
===== Arhitektura =====
flowchart TB
subgraph CLASSIC["KLASIČNI PKI"]
CR[Klasični Root-CA]
CI[Klasični Intermediate]
CC[Klasični certifikati]
end
subgraph HYBRID["HIBRIDNI PKI"]
HR[Hibridni Root-CA]
HI[Hibridni Intermediate]
HC[Hibridni certifikati]
end
subgraph CLIENTS["ODJEMALCI"]
OLD[Podedovani odjemalci]
NEW[Moderni odjemalci]
end
CR --> CI --> CC
HR --> HI --> HC
CC --> OLD
HC --> NEW
CC -.->|Nadomestno| NEW
style CLASSIC fill:#ffebee
style HYBRID fill:#e8f5e9
----
===== Kdaj vzporedna operacija? =====
| Scenarij | Priporočilo |
|----------|-------------|
| Podedovani sistemi, ki jih ni mogoče posodobiti | Da vzporedno |
| Postopna migracija čez leta | Da vzporedno |
| Regulativne zahteve za združljivost nazaj | Da vzporedno |
| Greenfield / nov projekt | Ne, neposredno hibridno |
| Vsi odjemalci posodobljivi | Ne, hibridna migracija |
----
===== Nastavitev =====
==== Struktura imenikov ====
/etc/pki/
├── classic/
│ ├── root-ca.pem
│ ├── intermediate-ca.pem
│ ├── intermediate-ca.key
│ ├── crl/
│ └── issued/
├── hybrid/
│ ├── root-ca.pem
│ ├── intermediate-ca.pem
│ ├── intermediate-ca.key
│ ├── crl/
│ └── issued/
└── scripts/
├── issue-classic.sh
├── issue-hybrid.sh
└── issue-both.sh
==== Skripta za dvojno izdajo ====
#!/bin/bash
# /etc/pki/scripts/issue-both.sh
# Izda certifikat iz OBEH PKI-jev
CSR_FILE="$1"
OUTPUT_PREFIX="$2"
if [ -z "$CSR_FILE" ] || [ -z "$OUTPUT_PREFIX" ]; then
echo "Uporaba: $0 "
exit 1
fi
# Izdaja klasičnega certifikata
echo "Izdajam klasični certifikat..."
openssl ca -config /etc/pki/classic/openssl.cnf \
-in "$CSR_FILE" \
-out "${OUTPUT_PREFIX}-classic.pem" \
-days 365 \
-batch
# Izdaja hibridnega certifikata
echo "Izdajam hibridni certifikat..."
/usr/local/bin/wvds-sign --mode hybrid \
--ca /etc/pki/hybrid/intermediate-ca.pfx \
--csr "$CSR_FILE" \
--out "${OUTPUT_PREFIX}-hybrid.pem" \
--days 365
echo "Končano:"
echo " Klasični: ${OUTPUT_PREFIX}-classic.pem"
echo " Hibridni: ${OUTPUT_PREFIX}-hybrid.pem"
----
===== Konfiguracija strežnika =====
==== Nginx: Dvojni certifikat ====
server {
listen 443 ssl;
server_name api.example.com;
# Primarno: Hibridni certifikat
ssl_certificate /etc/ssl/certs/api-hybrid.pem;
ssl_certificate_key /etc/ssl/private/api.key;
# Nadomestno: Klasični certifikat (za stare odjemalce)
# Opomba: Nginx podpira samo en certifikat na strežniški blok
# Za pravi dvojni način: Ločeni strežniški bloki ali SNI
}
# Alternativa: Ločen strežnik za podedovano
server {
listen 443 ssl;
server_name api-legacy.example.com;
ssl_certificate /etc/ssl/certs/api-classic.pem;
ssl_certificate_key /etc/ssl/private/api.key;
}
==== Apache: Dvojni certifikat ====
ServerName api.example.com
# Moderni odjemalci → Hibridno
SSLCertificateFile /etc/ssl/certs/api-hybrid.pem
SSLCertificateKeyFile /etc/ssl/private/api.key
SSLCertificateChainFile /etc/ssl/certs/hybrid-chain.pem
ServerName api-legacy.example.com
# Podedovani odjemalci → Klasično
SSLCertificateFile /etc/ssl/certs/api-classic.pem
SSLCertificateKeyFile /etc/ssl/private/api.key
SSLCertificateChainFile /etc/ssl/certs/classic-chain.pem
----
===== Upravljanje shrambe zaupanja =====
==== Odjemalci z obema CA ====
# Shramba zaupanja z obema Root-CA
cat /etc/pki/classic/root-ca.pem /etc/pki/hybrid/root-ca.pem > /etc/ssl/certs/ca-bundle.pem
# Ali posamično dodati
update-ca-trust extract
==== Windows shramba zaupanja ====
# Uvoz obeh Root-CA
Import-Certificate -FilePath "classic-root.cer" -CertStoreLocation Cert:\LocalMachine\Root
Import-Certificate -FilePath "hybrid-root.cer" -CertStoreLocation Cert:\LocalMachine\Root
----
===== CRL/OCSP za oba PKI =====
# CRL distribucijske točke
# Klasično: http://crl.example.com/classic/intermediate.crl
# Hibridno: http://crl.example.com/hybrid/intermediate.crl
# Nginx za distribucijo CRL
location /crl/classic/ {
alias /etc/pki/classic/crl/;
types { application/pkix-crl crl; }
}
location /crl/hybrid/ {
alias /etc/pki/hybrid/crl/;
types { application/pkix-crl crl; }
}
----
===== Nadzor =====
# Prometheus: Nadzor obeh PKI
scrape_configs:
- job_name: 'pki-classic'
static_configs:
- targets: ['localhost:9793']
params:
path: ['/etc/pki/classic/issued/*.pem']
relabel_configs:
- target_label: pki
replacement: 'classic'
- job_name: 'pki-hybrid'
static_configs:
- targets: ['localhost:9793']
params:
path: ['/etc/pki/hybrid/issued/*.pem']
relabel_configs:
- target_label: pki
replacement: 'hybrid'
**Metrike nadzorne plošče:**
| Metrika | Klasično | Hibridno |
|---------|----------|----------|
| Aktivni certifikati | ''count(x509{pki="classic"})'' | ''count(x509{pki="hybrid"})'' |
| Potečejo < 30d | ''count(...)'' | ''count(...)'' |
| CRL naslednja posodobitev | ''crl_next_update{pki="classic"}'' | ''crl_next_update{pki="hybrid"}'' |
----
===== Sledenje migraciji =====
#!/bin/bash
# migration-status.sh - Napredek migracije
echo "=== Status migracije PKI ==="
classic_count=$(find /etc/pki/classic/issued -name "*.pem" | wc -l)
hybrid_count=$(find /etc/pki/hybrid/issued -name "*.pem" | wc -l)
total=$((classic_count + hybrid_count))
if [ "$total" -gt 0 ]; then
hybrid_percent=$((hybrid_count * 100 / total))
else
hybrid_percent=0
fi
echo "Klasično: $classic_count"
echo "Hibridno: $hybrid_count"
echo "Skupaj: $total"
echo "Migracija: $hybrid_percent%"
# Grafična predstavitev
echo ""
echo -n "Napredek: ["
for i in $(seq 1 50); do
if [ $i -le $((hybrid_percent / 2)) ]; then
echo -n "█"
else
echo -n "░"
fi
done
echo "] $hybrid_percent%"
----
===== Postopna ukinitev klasičnega =====
flowchart LR
subgraph ACTIVE["AKTIVNO"]
A1[Oba PKI aktivna]
end
subgraph TRANSITION["PREHOD"]
T1[Klasično: samo obnova]
T2[Hibridno: novi certifikati]
end
subgraph SUNSET["SONČNI ZAHOD"]
S1[Klasično: samo še aktivno]
S2[Ni novih klasičnih cert.]
end
subgraph END["KONEC"]
E1[Klasično deaktivirano]
end
ACTIVE --> TRANSITION --> SUNSET --> END
style ACTIVE fill:#e8f5e9
style END fill:#ffebee
**Časovnica:**
| Faza | Akcija | Sprožilec |
|------|--------|-----------|
| Aktivno | Oba PKI izdajata | Začetek |
| Prehod | Klasično samo obnova | 80% hibridno |
| Sončni zahod | Klasično samo poteka | 95% hibridno |
| Konec | Klasični CA brez povezave | Vsi klasični potekli |
----
===== Kontrolni seznam =====
| # | Kontrolna točka | |
|---|-----------------|---|
| 1 | Oba PKI vzpostavljena | |
| 2 | Skripte za dvojno izdajo delujejo | |
| 3 | Shrambe zaupanja vsebujejo oba CA | |
| 4 | CRL/OCSP za oba na voljo | |
| 5 | Nadzor za oba aktiven | |
| 6 | Sledenje migraciji vzpostavljeno | |
| 7 | Načrt ukinitve dokumentiran | |
----
===== Povezana dokumentacija =====
* [[.:classic-to-hybrid|Klasično → Hibridno]] – Neposredna migracija
* [[.:rollback-strategie|Strategija povrnitve]] – Načrt v sili
* [[..:monitoring:start|Nadzor]] – Spremljanje obeh PKI
----
<< [[.:classic-to-hybrid|← Klasično → Hibridno]] | [[.:rollback-strategie|→ Strategija povrnitve]] >>
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//
{{tag>migration parallel dual-pki kompatibilitaet operator}}