Il percorso parte dall'elenco dei certificati del client, dove la voce mostra un nome, un emittente e una data di scadenza e nulla più. Esportala, importala sul secondo dispositivo e la connessione viene rifiutata perché il client non può dimostrare di possedere la chiave privata. Il file è stato copiato per intero; l'errore è aspettarsi che un certificato porti con sé la propria chiave. Leggi la finestra di esportazione prima di scegliere il formato, poi ispeziona il file che hai ricevuto davvero.

Due clic, due artefatti molto diversi.

Leggi la finestra di esportazione, non il suffisso del file

Un'esportazione di certificato DER o PEM contiene una chiave pubblica e le dichiarazioni di identità firmate, cioè ciò che serve a un server per fidarsi di te e ciò che serve a un client per verificare un server. Un pacchetto PKCS#12 è un contenitore che può custodire un certificato, la sua catena e la chiave privata corrispondente, protetto da una password, anche se può essere creato pure senza la chiave.

PEM è solo una codifica testuale, non una promessa sul contenuto. Lo stesso suffisso può descrivere un solo certificato o un file con più blocchi etichettati, e sono le opzioni di esportazione a deciderlo.

La domanda utile non è quindi mai quale estensione hai ottenuto, ma quali blocchi contiene il file. Un pacchetto esportato senza la sua chiave resta un pacchetto. Controlla il contenuto, non la popolarità del formato.

Ispeziona ciò che hai ottenuto davvero

Cerca le etichette prima di importare qualsiasi cosa, poi leggi i campi del certificato per confermare quale identità stai tenendo in mano. Esegui i controlli sul file che verrà davvero importato. Ripetili dopo ogni nuova esportazione, perché le opzioni possono cambiare.

grep -E 'BEGIN (CERTIFICATE|PRIVATE KEY|ENCRYPTED PRIVATE KEY)' bundle.pem
openssl x509 -in client.crt -noout -subject -issuer -dates
openssl pkey -in client.key -noout -text | head -5
openssl pkcs12 -info -in client.p12 -noout

Un'esportazione con il solo blocco del certificato è un oggetto pubblico e non può autenticarsi. Un blocco di chiave senza certificato ti lascia senza la catena che il server si aspetta. Anche l'output informativo di PKCS#12 segnala se è presente una chiave, il che risolve la questione per quel formato. Indica pure l'algoritmo e la dimensione della chiave, e fallisce del tutto quando la chiave non c'è.

Non incollare mai un file contenente una chiave privata in un thread di assistenza, in un issue tracker o in una chat, nemmeno quando sembra il certificato che stavi già condividendo. Le schermate di un pannello delle chiavi meritano la stessa cautela.

La chiave può risiedere dove non puoi copiarla

Sui dispositivi gestiti la chiave privata può stare nel portachiavi del sistema operativo, in un token hardware o in un enclave sicuro, con una policy che la contrassegna come non esportabile. Il gestore dei certificati mostra allora l'oggetto pubblico mentre il segreto resta al suo posto, e nessun comando di esportazione produrrà una copia portatile. L'iscrizione tramite gestione dei dispositivi mobili spesso funziona proprio così per progettazione.

È un controllo, non un ostacolo da aggirare. Ricostruire una chiave privata dal certificato pubblico non è possibile, e qualsiasi strumento che lo sostenga sta facendo altro.

Iscrivi una nuova identità invece di copiare

La via supportata consiste di solito nel registrare un'identità distinta per il nuovo dispositivo e revocare quella vecchia quando viene ritirata, così ogni dispositivo può essere ritirato in modo indipendente. Dove un'esportazione con la chiave è davvero approvata, tratta il file risultante e la sua password come credenziali: cifrati a riposo, trasferiti su un canale fidato ed eliminati al termine dell'iscrizione.

Verifica autenticandoti con l'identità importata, non guardando se l'importazione è riuscita. Un client che accoglie un certificato pubblico nel proprio archivio non ha dimostrato nulla sulla chiave.

Concludi confermando che il server accetta la nuova identità e che quella vecchia si comporta ancora come la policy intende. Così il percorso si chiude con delle prove, non con un file che sembra corretto.

Articoli correlati