Ultimo aggiornamento: Novembre 2020
Anche se i periodi di validità dei certificati si sono ridotti, sono pochi i professionisti IT che accedono alla propria configurazione TLS/SSL ogni giorno. Nella maggior parte dei casi, vi accedono più o meno una volta l'anno, quando devono cambiare i certificati. A volte è difficile rintracciare e gestire i certificati e il materiale relativo e si perde tempo a cercare il percorso in cui sono conservati. Questo post ti aiuterà a localizzare la tua chiave privata; le modalità per farlo variano a seconda del web server OS. Di seguito tratteremo i principali sistemi operativi, ma prima spieghiamo alcuni concetti base sulle chiavi private.
Tutti i certificati TLS funzionano mediante una chiave privata,un file separato usato per criptare/decriptare i dati che vengono scambiati fra il tuo server e i client che vi si connettono. Quando richiedi un certificato inviando una Certificate Signing Request (CSR), a questo viene abbinata una chiave privata, che è creata nel tuo server. Ma la certificate authority (CA) che te lo fornisce (come ad esempio DigiCert) non crea né possiede la tua chiave privata. In effetti, nessuno al di fuori dei tuoi amministratori dovrebbe mai avere accesso a questo materiale. Abbiamo osservato un aumento di casi in cui le CA hanno dovuto revocare i certificati perché gli amministratori avevano pubblicato le chiavi in un repository online, come GitHub. Anche se non ritieni che quel sito possa divulgare dati sensibili, ogni volta che la chiave privata viene esposta è comunque necessario revocare tutti i certificati corrispondenti. Se non hai ancora installato il tuo certificato, la posizione più probabile della chiave privata è nel computer o sul server in cui hai generato la coppia di chiavi e la CSR. Quando generi una coppia di chiavi, salvi due file, uno che contiene la chiave pubblica e uno che contiene la chiave privata. In OpenSSL, puoi eseguire il comando openssl version –a per trovare la cartella in cui dovrebbero essere salvati i file delle chiavi (per impostazione predefinita /usr/local/ssl). In Windows (IIS), il sistema operativo gestisce le CSR al posto tuo. È preferibile prima completare la richiesta ed esportare la chiave in un secondo momento (vedi istruzioni più avanti).
Se il tuo certificato è già installato, segui queste istruzioni per localizzare il file della chiave privata nei sistemi operativi più comuni.
La posizione del file della chiave privata sarà indicata nel file di configurazione principale di Apache, ovvero httpd.conf o apache2. conf. La direttiva SSLCertificateKeyFile specificherà il percorso in cui è conservata la chiave nel tuo server. OpenSSL, la più popolare libreria SSL su Apache, salva per impostazione predefinita le chiavi private in /usr/local/ssl. Puoi eseguire il comando openssl version –a per trovare OPENSSLDIR e confermare la cartella quando il tuo server salva le chiavi.
Sarai in grado di trovare la posizione della chiave privata nel file del virtual host del tuo sito. Vai al server block per quel sito (per impostazione predefinita nella directory /var/www/). Apri il file di configurazione principale per il sito e cerca la direttiva ssl_certificate_key, che fornirà il percorso per il file della chiave privata (alcuni utenti hanno un file di configurazione separato per SSL, come ssl.conf).
Sui server Windows, il sistema operativo gestisce per te i file del certificato in una cartella nascosta, ma puoi recuperare la chiave privata esportando un file “.pfx” che contiene i certificati e la chiave privata. Apri Microsoft Management Console (MMC). Nella Directory principale espandi Certificati (computer locale). Il certificato del server si troverà nella sottocartella Personale o server Web. Individua il certificato, identificato dal Nome comune, clicca con il pulsante destro del mouse su di esso, seleziona Esporta e segui le istruzioni. Verrà creato un file .pfx. Per istruzioni dettagliate passo per passo, vai qui. A seconda di quello che devi fare con la chiave privata, potresti aver bisogno di isolarla in un file a parte convertendo il .pfx. Se devi semplicemente fare un backup della chiave o installarla in un altro server Windows, il formato è già quello giusto. Per usarla con altre piattaforme, come Apache, devi convertire il file .pfx usando OpenSSL. per separare i file .crt/.cer e .key. Se non riesci a trovare la chiave privata con questa procedura, puoi provare scaricando DigiCert SSL Utility. Questo software ti permetterà di importare il certificato e individuare automaticamente la chiave privata, se si trova su quel server. In ogni caso, questo software funziona in locale e non condivide con DigiCert le informazioni sulle chiavi. DigiCert non ottiene mai chiavi private per certificati TLS, e il trattenere in garanzia chiavi TLS da parte della CA (cosa che accade a volte con la firma dei documenti e con i certificati S/MIME) è rigorosamente vietato dalle policy in materia di archivi radice.
Se hai seguito le istruzioni per il tuo sistema operativo e non hai trovato la chiave, forse stai cercando nel posto sbagliato. Se stai lavorando con un server che ha abilitato connessioni HTTPS, allora la chiave è da qualche parte su quel server (o accessibile ad esso), altrimenti le connessioni HTTPS non funzionerebbero. Qui possiamo prendere in esame solo situazioni in cui vengono usate le impostazioni predefinite, ma è possibile che la tua società usi una configurazione personalizzata. Puoi provare eseguendo nel server una ricerca di un file “.key” o seguendo la procedura per installare un nuovo certificato, che a un certo punto ti chiederà di specificare una chiave privata. Su alcune piattaforme, OpenSSL salva il file .key nella stessa directory da cui è stato eseguito il comando –req. Se devi ancora installare il certificato e non riesci a trovare la chiave, è possibile che sia andata persa. Se hai creato la CSR ma non riesci a trovare il file della chiave, la cosa più semplice da fare è emettere di nuovo il certificato. Inizia creando una nuova CSR, assicurandoti questa volta di salvare la chiave privata in una posizione conosciuta, e abbina il certificato con quella nuova chiave. Con DigiCert la riemissione di un certificato è sempre gratuita. Anche se sapere dove e come proteggere la chiave è cruciale per la sicurezza, raccomandiamo vivamente di generare una nuova coppia di chiavi ogni volta che viene richiesto un nuovo certificato. Riciclare le chiavi è una cattiva abitudine che può causare grandi problemi in caso di compromissione e indebolire la sicurezza del sistema in caso compaiano nuove minacce. Generare chiavi e CSR è più semplice che mai e DigiCert consiglia di sostituirle di frequente, per stimolare le aziende ad adottare buone abitudini di sicurezza.