====== Funzionamento parallelo ======
**ComplessitΓ :** Media \\
**Durata:** Illimitata (fino alla disattivazione Classic) \\
**Rischio:** Basso
Funzionamento simultaneo di PKI classica e Post-Quantum per massima compatibilitΓ .
----
===== Architettura =====
flowchart TB
subgraph CLASSIC["π PKI CLASSICA"]
CR[Root-CA classica]
CI[Intermediate classica]
CC[Certificati classici]
end
subgraph HYBRID["π PKI IBRIDA"]
HR[Root-CA ibrida]
HI[Intermediate ibrida]
HC[Certificati ibridi]
end
subgraph CLIENTS["π₯ CLIENT"]
OLD[Client legacy]
NEW[Client moderni]
end
CR --> CI --> CC
HR --> HI --> HC
CC --> OLD
HC --> NEW
CC -.->|Fallback| NEW
style CLASSIC fill:#ffebee
style HYBRID fill:#e8f5e9
----
===== Quando funzionamento parallelo? =====
| Scenario | Raccomandazione |
|----------|-----------------|
| Sistemi legacy non aggiornabili | β Parallelo |
| Migrazione graduale su anni | β Parallelo |
| Requisiti normativi per retrocompatibilitΓ | β Parallelo |
| Greenfield / Nuovo progetto | β Direttamente Hybrid |
| Tutti i client aggiornabili | β Migrazione Hybrid |
----
===== Configurazione =====
==== Struttura directory ====
/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
==== Script emissione duale ====
#!/bin/bash
# /etc/pki/scripts/issue-both.sh
# Emette un certificato da ENTRAMBE le PKI
CSR_FILE="$1"
OUTPUT_PREFIX="$2"
if [ -z "$CSR_FILE" ] || [ -z "$OUTPUT_PREFIX" ]; then
echo "Utilizzo: $0 "
exit 1
fi
# Emissione certificato classico
echo "Emissione certificato classico..."
openssl ca -config /etc/pki/classic/openssl.cnf \
-in "$CSR_FILE" \
-out "${OUTPUT_PREFIX}-classic.pem" \
-days 365 \
-batch
# Emissione certificato ibrido
echo "Emissione certificato ibrido..."
/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 "Completato:"
echo " Classico: ${OUTPUT_PREFIX}-classic.pem"
echo " Ibrido: ${OUTPUT_PREFIX}-hybrid.pem"
----
===== Configurazione server =====
==== Nginx: Certificato duale ====
server {
listen 443 ssl;
server_name api.example.com;
# Primario: Certificato ibrido
ssl_certificate /etc/ssl/certs/api-hybrid.pem;
ssl_certificate_key /etc/ssl/private/api.key;
}
# Alternativa: Server separato per Legacy
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;
}
----
===== Gestione Trust Store =====
==== Client con entrambe le CA ====
# Trust Store con entrambe le Root-CA
cat /etc/pki/classic/root-ca.pem /etc/pki/hybrid/root-ca.pem > /etc/ssl/certs/ca-bundle.pem
# Oppure aggiungerle singolarmente
update-ca-trust extract
==== Trust Store Windows ====
# Importare entrambe le Root-CA
Import-Certificate -FilePath "classic-root.cer" -CertStoreLocation Cert:\LocalMachine\Root
Import-Certificate -FilePath "hybrid-root.cer" -CertStoreLocation Cert:\LocalMachine\Root
----
===== CRL/OCSP per entrambe le PKI =====
# Distribuzione 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; }
}
----
===== Monitoraggio =====
# Prometheus: Monitorare entrambe le PKI
scrape_configs:
- job_name: 'pki-classic'
static_configs:
- targets: ['localhost:9793']
relabel_configs:
- target_label: pki
replacement: 'classic'
- job_name: 'pki-hybrid'
static_configs:
- targets: ['localhost:9793']
relabel_configs:
- target_label: pki
replacement: 'hybrid'
----
===== Tracciamento migrazione =====
#!/bin/bash
# migration-status.sh - Stato avanzamento migrazione
echo "=== Stato migrazione 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 "Classici: $classic_count"
echo "Ibridi: $hybrid_count"
echo "Totale: $total"
echo "Migrazione: $hybrid_percent%"
----
===== Dismissione Classic =====
flowchart LR
subgraph ACTIVE["β
ATTIVO"]
A1[Entrambe PKI attive]
end
subgraph TRANSITION["π TRANSIZIONE"]
T1[Classic: solo rinnovi]
T2[Hybrid: nuovi certificati]
end
subgraph SUNSET["π
SUNSET"]
S1[Classic: solo attivi]
S2[Nessun nuovo cert Classic]
end
subgraph END["π FINE"]
E1[Classic disattivata]
end
ACTIVE --> TRANSITION --> SUNSET --> END
style ACTIVE fill:#e8f5e9
style END fill:#ffebee
**Timeline:**
| Fase | Azione | Trigger |
|------|--------|---------|
| Attivo | Entrambe PKI emettono | Inizio |
| Transizione | Classic solo rinnovi | 80% Hybrid |
| Sunset | Classic lasciare scadere | 95% Hybrid |
| Fine | Classic-CA offline | Tutti Classic scaduti |
----
===== Checklist =====
| # | Punto di verifica | β |
|---|-------------------|---|
| 1 | Entrambe PKI configurate | β |
| 2 | Script dual-issue funzionanti | β |
| 3 | Trust Store contengono entrambe CA | β |
| 4 | CRL/OCSP disponibili per entrambe | β |
| 5 | Monitoraggio attivo per entrambe | β |
| 6 | Tracciamento migrazione configurato | β |
| 7 | Piano phase-out documentato | β |
----
===== Documentazione correlata =====
* [[.:classic-to-hybrid|Classic β Hybrid]] β Migrazione diretta
* [[.:rollback-strategie|Strategia di rollback]] β Piano di emergenza
* [[..:monitoring:start|Monitoraggio]] β Sorveglianza entrambe PKI
----
<< [[.:classic-to-hybrid|β Classic β Hybrid]] | [[.:rollback-strategie|β Strategia di rollback]] >>
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//
{{tag>migrazione parallelo dual-pki compatibilitΓ operator}}