Inhaltsverzeichnis
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 <file-csr> <prefisso-output>" 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 → Hybrid – Migrazione diretta
- Strategia di rollback – Piano di emergenza
- Monitoraggio – Sorveglianza entrambe PKI
« ← Classic → Hybrid | → Strategia di rollback »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: il 30/01/2026 alle 01:37