Chrome: Installare un certificato SSL self-signed da Ubuntu

Molto spesso durante lo sviluppo di applicazioni web è necessario riprodurre all’interno del proprio PC esattamente lo stesso ambiente che verrà utilizzato poi nel server in produzione. Grazie a Docker è semplice riprodurre in locale la stessa configurazione software utilizzata del server. Tuttavia spesso accade che non si abbia a disposizione un certificato SSL firmato da un autorità valida da sfruttare nell’ambiente locale per cui, provando ad accedere all’applicazione da un browser, si ottiene il messaggio di avviso “la connessione non è privata”.

Con questo post voglio spiegarti come aggiungere un certificato SSL all’archivio utilizzato da Google Chrome in modo da evitare di ricevere i messaggi di errore dal browser.

La connessione non è privata NET:ERR_CERT_AUTHORITY_INVALID

Perché su Linux non basta un doppio click sul file del certificato?

La risposta alla domanda è molto semplice: quando utilizzi una distribuzione Linux, Google Chrome non utilizza lo stesso archivio di certificati del sistema operativo.
Tale scelta da parte degli sviluppatori è stata dettata dal fatto che non esiste un unico software di gestione dei certificati comune a tutto il mondo Linux ma ogni distribuzione implementa un meccanismo differente.
A causa di ciò, mentre su Windows e Mac OS X basta aggiungere con un doppio click un certificato all’archivio del sistema operativo affinché venga automaticamente accettato da Chrome su Linux questa procedura non porta ad alcun risultato.
Infatti su Linux viene utilizzato come gestore dei certificati la libreria Mozilla Network Security Services (NSS). Di conseguenza, per far riconoscere un certificato a Chrome, è necessario aggiungerlo direttamente all’archivio gestito da questa libreria.

Aggiungere il certificato

La prima cosa da fare per poter aggiungere un certificato SSL a Google Chrome è installare certutil. Tramite questo pacchetto è possibile andare ad aggiungere ed a rimuovere i certificati gestiti dalla libreria NSS.
Per installarlo puoi usare il seguente comando da terminale:

sudo apt install libnss3-tools

NOTA: a seconda della versione del sistema operativo questo pacchetto potrebbe essere già incluso all’interno della distribuzione in uso.

Una volta che il pacchetto è stato installato all’interno del sistema, per aggiungere un certificato (con estensione .crt) all’archivio dei certificati puoi utilizzare il seguente comando (ricordandoti di rimpiazzare il placeholder FILE_CRT con il nome effettivo del tuo certificato):

certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n FILE_CRT -i FILE_CRT

Per verificare che l’aggiunta del nuovo certificato SSL sia andata a buon fine puoi farti restituire la lista di tutti i certificati aggiunti all’archivio NSS utilizzando il seguente comando:

certutil -d sql:$HOME/.pki/nssdb -L

Se tutto sarà andato a buon fine, riavviando Chrome, non dovresti più ricevere il messaggio d’errore riguardante la connessione non privata.

Rimuovere il certificato

Nel caso in cui sia necessario rimuovere il certificato il comando da eseguire è:

 certutil -d sql:$HOME/.pki/nssdb -D -n FILE_CRT  

Fonti:
Documentazione Network Security Services
Documentazione Chromium

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *