11 votes

'Pas une autorité de certification' lors de l'importation d'un certificat auto-signé

J'ai créé un certificat SSL auto-signé pour le développement local. Lorsque j'accède à la page, j'obtiens une erreur NET::ERR_CERT_AUTHORITY_INVALID. Mais lorsque j'essaie de l'importer dans Chrome (chrome://settings/certificates), cela échoue:

Le fichier contenait un certificat, qui n'a pas été importé:

  • mylocalwebapp.dev: Non une Autorité de Certification

Voici la commande que j'ai utilisée pour créer le certificat:

openssl req -new -x509 -nodes \
 -extensions SAN \
 -reqexts SAN  \
 -days 365 \
 -newkey rsa:2048 \
 -keyout /etc/ssl/private/apache-selfsigned.key \
 -out /etc/ssl/certs/apache-selfsigned.crt \
 -config <(cat /etc/ssl/openssl.cnf <(printf '[SAN]\nsubjectAltName=DNS:mylocalwebapp.dev'))

J'ai ajouté les options SAN car à partir de la version 58, Chrome n'accepte pas sans SAN. Cela fonctionnait sur Chrome 57 et cela fonctionne toujours sur Firefox.

Comment puis-je faire fonctionner mon certificat auto-signé sur Chrome 58 sur Ubuntu 17.04?

10voto

tdg5 Points 376

Juste pour être sûrs que nous couvrons toutes les bases... Avez-vous essayé les processus décrits ici? https://stackoverflow.com/questions/7580508/getting-chrome-to-accept-self-signed-localhost-certificate

Cela fonctionnait pour moi, mais ce matin, après la mise à jour vers Chrome 58.0.3029.81, j'ai également reçu l'erreur suivante dans la console pour un certificat auto-signé qui fonctionnait auparavant sur Ubuntu 16.04 :

Erreur de certificat
Il y a des problèmes avec la chaîne de certificats du site (net::ERR_CERT_AUTHORITY_INVALID).

ÉDIT:

Je viens de réussir avec l'une des méthodes du lien que j'ai référencé ci-dessus. Cela contourne complètement Chrome car il semble que quelque chose a changé avec Chrome et que cela ne fonctionne plus correctement.

Pour décharger le certificat en utilisant le client OpenSSL (probablement pas nécessaire, mais au cas où vous voudriez être très méticuleux):

$ echo QUIT | openssl s_client -connect $DOMAIN_TO_FETCH_FROM:443 | sed -ne '/BEGIN CERT/,/END CERT/p' > my-cert

Pour installer le certificat déchargé en utilisant certutil. Si vous n'avez pas déchargé votre certificat avec openssl, remplacez my-cert par le nom de fichier approprié :

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

Vérifiez l'installation du certificat avec certutil (si vous le souhaitez):

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

# Nom du certificat                                         Attributs de confiance
#                                                              SSL,S/MIME,JAR/XPI
#
# my-cert                                                      P,,  

Fermez complètement et redémarrez Chrome, et peut-être que vous trouverez du succès. Cela a fonctionné pour moi avec les versions 58 et 59-beta.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X