1663 votes

Faire en sorte que Chrome accepte le certificat localhost auto-signé

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 "View certificate information" 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 ?

16 votes

Lorsque vous dites que Firefox s'en plaint au départ, voulez-vous dire qu'il vous demande d'ajouter une exception de certificat ? Cela ne devrait pas se produire si le certificat est correctement installé. Il me semble que les trois navigateurs se plaignent, mais que Firefox vous permet d'annuler sa plainte. Je poste ceci en tant que commentaire car je n'ai pas de réponse spécifique, mais j'ai fait exactement la même chose et cela fonctionne bien dans les trois navigateurs. Je vous suggère d'essayer de le faire fonctionner sur IE d'abord, puis une fois qu'il est satisfait, de vous préoccuper des deux autres. Désolé de ne pas avoir pu vous aider davantage !

0 votes

Eh bien, j'ai ajouté l'exception Firefox avant d'ajouter le certificat au référentiel du système Windows, donc je ne sais pas si Firefox se serait plaint si je l'avais fait dans l'autre sens ou non, désolé.

1 votes

Vous devez créer un certificat bien formé, y compris la façon dont les noms DNS sont présentés. OpenSSL ne les présente pas d'une manière satisfaisante pour les navigateurs. Voir Comment créer un certificat auto-signé avec openssl ? .

552voto

kellen Points 1251

Cela a marché pour moi :

  1. En utilisant Chrome, accédez à une page de votre serveur via HTTPS et continuez au-delà de la page d'avertissement rouge (en supposant que vous ne l'ayez pas déjà fait).
  2. Ouvrez Chrome Settings > Show advanced settings > HTTPS/SSL > Manage Certificates .
  3. Cliquez sur le bouton Authorities et faites défiler vers le bas pour trouver votre certificat sous le nom d'organisation que vous avez donné au certificat.
  4. Sélectionnez-le, cliquez sur Modifier ( NOTE (dans les versions récentes de Chrome, le bouton est désormais "Advanced" au lieu de "Edit"), cochez toutes les cases et cliquez sur OK. Vous devrez peut-être redémarrer Chrome.

Vous devriez avoir le joli cadenas vert sur vos pages maintenant.

EDITAR: J'ai réessayé sur une nouvelle machine et le certificat n'est pas apparu dans la fenêtre de gestion des certificats en continuant simplement à partir de la page rouge des certificats non fiables. J'ai dû faire ce qui suit :

  1. Sur la page avec le certificat non fiable ( https:// est barré en rouge), cliquez sur le verrou > Informations sur le certificat. NOTE : sur les nouvelles versions de chrome, vous devez ouvrir Developer Tools > Security et sélectionnez View certificate .
  2. Cliquez sur le bouton Details tab > Export . Choisissez PKCS #7, single certificate comme format de fichier.
  3. Suivez ensuite mes instructions initiales pour accéder à la page Gérer les certificats. Cliquez sur le bouton Authorities tab > Import et choisissez le fichier vers lequel vous avez exporté le certificat, et veillez à choisir PKCS #7, single certificate comme type de fichier .
  4. Si le magasin de certification est invité à le faire, choisissez Autorités de certification racine de confiance
  5. Cochez toutes les cases et cliquez sur OK. Redémarrez Chrome.

0 votes

Autre étape 2 : naviguez vers chrome://settings/certificates. Par ailleurs, si vous vous êtes amusé à générer votre certificat auto-signé et en avez créé plusieurs, essayez d'utiliser cette page pour localiser et supprimer un certificat précédemment importé, puis réimporter.

5 votes

Chrome://settings/certificates ne fonctionne plus, et il n'y a pas d'onglet Autorités dans les paramètres de Chrome > Sécurité > Gérer les certificats. Quelqu'un a-t-il des instructions mises à jour ?

0 votes

chrome://settings/certificates n'existe pas pour Chrome sous Windows. La section des certificats ouvre simplement l'outil de la chaîne de certificats de Windows - Chrome ne semble pas avoir de stockage propre pour les certificats sous Windows.

154voto

bjnord Points 964

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

En gros :

  1. double-cliquez sur l'icône du verrou avec un X et faites glisser l'icône du certificat sur le bureau,
  2. ouvrir ce fichier (se terminant par une extension .cer) ; cela ouvre l'application trousseau de clés qui vous permet d'approuver le certificat.

3 votes

Après avoir ouvert le certificat dans l'application Trousseau, modifiez les paramètres de confiance et réglez SSL sur "Toujours faire confiance".

98voto

kenorb Points 2464

Linux

Si vous utilisez Linux, vous pouvez également suivre les pages officielles de ce wiki :

En gros :

  • cliquez sur l'icône de verrouillage avec un X,
  • choisir les informations sur le certificat
  • allez dans l'onglet Détails
  • Cliquez sur Exporter... (enregistrer dans un fichier)

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 : Problème 55050 : Ubuntu SSL error 8179

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 en :

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

En prime, 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]

Dépannage

  • Exécuter Chrome avec --auto-ssl-client-auth paramètre

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

0 votes

Excellent, j'adore vos scripts. Vous n'avez pas besoin du QUIT cependant (il n'y a pas de commande HTTP comme QUIT de toute façon), et vous n'avez pas besoin du sed non plus, les outils nss peuvent filtrer le cert entre BEGIN et END CERT. Ainsi, le download_cert.sh peut être simplement ceci : echo | openssl s_client -connect $1:443

0 votes

J'ai essayé les autres options mais seule celle-ci fonctionne actuellement dans Chrome 4x pour linux, elle a refusé d'importer dans un magasin en utilisant les outils intégrés.

0 votes

Avec Chrome sur Ubuntu 20.04, je n'ai pas réussi à faire fonctionner cette fonction en passant l'option "P,," mais j'ai finalement réussi à le faire fonctionner en utilisant CT,c,c

93voto

kgrote Points 822

MISE À JOUR 11/2017 : Cette réponse ne fonctionnera probablement pas pour la plupart des versions plus récentes de Chrome.

MISE À JOUR 02/2016 : De meilleures instructions pour les utilisateurs de Mac peuvent être trouvées Ici .

  1. Sur le site que vous souhaitez ajouter, cliquez avec le bouton droit de la souris sur l'icône de verrouillage rouge dans la barre d'adresse : enter image description here

    1. Cliquez sur l'onglet intitulé Connexion puis cliquez sur Informations sur le certificat

    2. Cliquez sur le bouton Détails l'onglet, puis cliquez sur le bouton Copier dans un fichier... . Cela ouvrira l'assistant d'exportation de certificat, cliquez sur Suivant pour accéder à la Format du fichier d'exportation écran.

    3. Choisissez X.509 binaire encodé DER (.CER) , cliquez Suivant

    4. Cliquez sur Parcourir... et enregistrez le fichier sur votre ordinateur. Donnez-lui un nom descriptif. Cliquez sur Suivant puis cliquez sur Finition .

    5. Ouvrez les paramètres de Chrome, faites défiler jusqu'en bas, et cliquez sur Afficher les paramètres avancés...

    6. Sous HTTPS/SSL , cliquez Gérer les certificats...

    7. Cliquez sur le bouton Autorités de certification racine de confiance puis cliquez sur l'onglet Importation... bouton. Cela ouvre l'assistant d'importation de certificats. Cliquez sur Suivant pour accéder à la Fichier à importer écran.

    8. Cliquez sur Parcourir... et sélectionnez le fichier de certificat que vous avez enregistré précédemment, puis cliquez sur Suivant .

    9. Sélectionnez Placez tous les certificats dans le magasin suivant . Le magasin sélectionné doit être Autorités de certification racine de confiance . Si ce n'est pas le cas, cliquez sur Parcourir... et le sélectionner. Cliquez sur Suivant y Finition

    10. Cliquez sur Oui sur l'avertissement de sécurité.

    11. Redémarrez Chrome.

0 votes

El Copier dans un fichier devrait être renommé en Sauvegarder le certificat pour que ce qu'il fait soit clair.

2 votes

@AJeneral Ouais, Chrome a encore changé. Les instructions dans cet article a fonctionné pour moi récemment.

0 votes

J'ai suivi ces étapes pour la version 36.0.1985.125 sous Windows et cela a fonctionné pour moi.

62voto

Spencevail Points 439

Si vous êtes sur un mac et ne voyant pas l'onglet d'exportation ou comment obtenir le certificat, cela a fonctionné pour moi :

  1. Cliquez sur le cadenas avant le https://

  2. Allez dans l'onglet "Connexion".

  3. Cliquez sur "Informations sur le certificat".

    Maintenant, vous devriez voir ceci : Different information of course and yours should be marked as trusted yet (otherwise      you probably wouldn't be here)

  4. Faites glisser cette petite icône de certificat sur votre bureau (ou ailleurs).

  5. Double-cliquez sur le fichier .cer qui a été téléchargé, ce qui devrait l'importer dans votre trousseau et ouvrir l'accès au trousseau à votre liste de certificats.

    Dans certains cas, cela suffit et vous pouvez maintenant rafraîchir la page.

    Autrement :

  6. Double-cliquez sur le certificat nouvellement ajouté.

  7. Sous le menu déroulant de la confiance, changez l'option "Lorsque vous utilisez ce certificat" en "Toujours faire confiance".

Maintenant, rechargez la page en question et le problème devrait être résolu ! J'espère que cela vous aidera.


Modifier à partir de Wolph

Pour rendre cela un peu plus facile, vous pouvez utiliser le script suivant ( source ) :

  1. Enregistrez les éléments suivants script comme whitelist_ssl_certificate.ssh :

    #!/usr/bin/env bash -e
    
    SERVERNAME=$(echo "$1" | sed -E -e 's/https?:\/\///' -e 's/\/.*//')
    echo "$SERVERNAME"
    
    if [[ "$SERVERNAME" =~ .*\..* ]]; then
        echo "Adding certificate for $SERVERNAME"
        echo -n | openssl s_client -connect $SERVERNAME:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | tee /tmp/$SERVERNAME.cert
        sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" /tmp/$SERVERNAME.cert
    else
        echo "Usage: $0 www.site.name"
        echo "http:// and such will be stripped automatically"
    fi
  2. Rendez le script exécutable (depuis le shell) :

    chmod +x whitelist_ssl_certificate.ssh
  3. Exécutez le script pour le domaine que vous souhaitez (un simple copier/coller de l'url complète fonctionne) :

    ./whitelist_ssl_certificate.ssh https://your_website/whatever

1 votes

Cette approche a fonctionné pour moi sur OS X Mavericks, il n'y avait pas de Exportation option disponible comme décrit dans la première réponse ci-dessus.

0 votes

Fonctionne très bien. Le cadenas avant https est toujours barré, mais ce n'est pas grave car il n'y a plus de popup gênante.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X