Ottenere che Chrome accetti un certificato localhost autofirmato

Ho creato un certificato SSL autofirmato per la CN localhost. Firefox accetta questo certificato dopo essersi inizialmente lamentato, come previsto. Chrome e IE, tuttavia, si rifiutano di accettarlo, anche dopo aver aggiunto il certificato all'archivio dei certificati di sistema sotto Trusted Roots. Anche se il certificato è elencato come correttamente installato quando faccio clic su "View certificate information" in Chrome's HTTPS popup, insiste ancora che il certificato non può essere attendibile.

Cosa dovrei fare per far sì che Chrome accetti il certificato e smetta di lamentarsene?

Sul Mac, puoi usare l'utility Keychain Access per aggiungere il certificato autofirmato al portachiavi di sistema, e Chrome lo accetterà. Ho trovato le istruzioni passo dopo passo qui:

Google Chrome, Mac OS X e certificati SSL autofirmati

Fondamentalmente:

  1. fare doppio clic sull'icona del lucchetto con una X e trascinare l'icona del certificato sul desktop,
  2. apri questo file (che termina con un'estensione .cer); questo apre l'applicazione portachiavi che ti permette di approvare il certificato.
Commentari (15)

Linux

Linux

Se stai usando Linux, puoi anche seguire queste pagine wiki ufficiali:

Fondamentalmente:

  • cliccare sull'icona del lucchetto con una X,
  • scegliere Informazioni sul certificato
  • vai alla scheda Dettagli
  • Clicca su Esporta... (salva come file)

Ora, il seguente comando aggiungerà il certificato (dove YOUR_FILE è il tuo file esportato):

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

Per elencare tutti i tuoi certificati, esegui il seguente comando:

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

Se ancora non funziona, potreste essere affetti da questo bug: Problema 55050: Ubuntu SSL error 8179

P.S. Assicuratevi anche di avere libnss3-tools, prima di poter utilizzare i comandi di cui sopra.

Se non ce l'hai, installalo per favore:

sudo apt-get install libnss3-tools # on Ubuntu
sudo yum install nss-tools # on Fedora, Red Hat, etc.

Come bonus, potete usare i seguenti comodi script:

$ cat add_cert.sh
certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n $1 -i $1
$ cat list_cert.sh
certutil -d sql:$HOME/.pki/nssdb -L # add '-h all' to see all built-in certs
$ cat download_cert.sh
echo QUIT | openssl s_client -connect $1:443 | sed -ne '/BEGIN CERT/,/END CERT/p'

Uso:

add_cert.sh [FILE]
list_cert.sh
download_cert.sh [DOMAIN]

Risoluzione dei problemi;

  • Esegui Chrome con il parametro --auto-ssl-client-auth

    google-chrome --auto-ssl-client-auth

Commentari (2)

Sei sicuro che l'indirizzo con cui viene servito il sito sia lo stesso del certificato? Ho avuto gli stessi problemi con Chrome e un certificato autofirmato, ma alla fine ho scoperto che era solo incredibilmente esigente riguardo alla convalida del nome del dominio sul certificato (come dovrebbe essere).

Chrome non ha un proprio negozio di cert e usa quello di Window. Tuttavia Chrome non fornisce alcun modo per importare le cert nel negozio, quindi dovresti invece aggiungerle tramite IE.

Installazione di certificati in Google Chrome

Installare i certificati in Internet Explorer

Dai anche un'occhiata a questo per un paio di approcci diversi alla creazione di certificati autofirmati (presumo che tu stia usando IIS come non hai detto).

Come creare un certificato autofirmato in IIS 7

Commentari (4)