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