J'ai créé un certificat SSL auto-signé pour le CN localhost. Firefox accepte ce certificat après s'en être plaint au départ, comme prévu. Chrome et IE, en revanche, refusent de l'accepter, même après avoir ajouté le certificat au magasin de certificats du système sous Trusted Roots. Bien que le certificat soit répertorié comme étant correctement installé lorsque je clique sur " Afficher les informations du certificat " dans la fenêtre contextuelle HTTPS de Chrome, ce dernier insiste toujours sur le fait que le certificat n'est pas fiable.
Que dois-je faire pour que Chrome accepte le certificat et cesse de s'en plaindre ?
Sur le Mac, vous pouvez utiliser l'utilitaire Keychain Access pour ajouter le certificat auto-signé au trousseau du système, et Chrome l'acceptera alors. J'ai trouvé les instructions étape par étape ici :
[Google Chrome, Mac OS X et les certificats SSL auto-signés][1]
En gros :
[1] : http://www.robpeck.com/2010/10/google-chrome-mac-os-x-and-self-signed-ssl-certificates/
Si vous utilisez Linux, vous pouvez également suivre ces pages wiki officielles :
En gros :
Maintenant, la commande suivante ajoutera le certificat (où VOTRE_FILE est votre fichier exporté) :
certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n YOUR_FILE -i YOUR_FILE
Pour lister tous vos certificats, exécutez la commande suivante :
certutil -d sql:$HOME/.pki/nssdb -L
Si cela ne fonctionne toujours pas, vous pourriez être affecté par ce bogue : [Issue 55050 : Ubuntu SSL error 8179] [4]
P.S. Veuillez également vous assurer que vous avez libnss3-tools
, avant de pouvoir utiliser les commandes ci-dessus.
Si vous ne l'avez pas, veuillez l'installer par :
sudo apt-get install libnss3-tools # on Ubuntu
sudo yum install nss-tools # on Fedora, Red Hat, etc.
En bonus, vous pouvez utiliser les scripts pratiques suivants :
$ 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'
Utilisation :
add_cert.sh [FILE]
list_cert.sh
download_cert.sh [DOMAIN]
Exécuter Chrome avec le paramètre --auto-ssl-client-auth
.
google-chrome --auto-ssl-client-auth
[1] : http://code.google.com/p/chromium/wiki/LinuxCertManagement [2] : https://wiki.mozilla.org/NSS_Shared_DB_And_LINUX [3] : https://wiki.mozilla.org/NSS_Shared_DB_Howto [4] : http://code.google.com/p/chromium/issues/detail?id=55050
Êtes-vous sûr que l'adresse sous laquelle le site est affiché est la même que celle du certificat ? J'ai eu les mêmes problèmes avec Chrome et un certificat auto-signé, mais au final, j'ai découvert qu'il était juste incroyablement pointilleux sur la validation du nom de domaine sur le certificat (comme il se doit).
Chrome ne dispose pas de son propre magasin de certificats et utilise celui de Windows. Cependant, Chrome n'offre aucun moyen d'importer des certitudes dans le magasin, vous devez donc les ajouter via IE.
[Installation de certificats dans Google Chrome][1]
[Installation de certificats dans Internet Explorer] [2].
Jetez également un coup d'œil à cette page pour découvrir deux approches différentes de la création de certificats auto-signés (je suppose que vous utilisez IIS, car vous ne l'avez pas mentionné).
[Comment créer un certificat auto-signé dans IIS 7][3]
[1] : http://www.poweradmin.com/help/sslhints/Chrome.aspx [2] : http://www.poweradmin.com/help/sslhints/ie.aspx [3] : http://www.sslshopper.com/article-how-to-create-a-self-signed-certificate-in-iis-7.html