78 votes

Générer un certificat auto-signé avec openssl qui fonctionne dans Chrome 58

À partir de Chrome 58, il n'accepte plus les certificats auto-signés qui dépendent du Common Name : https://productforums.google.com/forum/#!topic/chrome/zVo3M8CgKzQ;context-place=topicsearchin/chrome/category$3ACanary%7Csort:relevance%7Cspell:false

Il exige désormais l'utilisation de Subject Alt Name. J'ai suivi précédemment ce guide sur la génération d'un certificat auto-signé : https://devcenter.heroku.com/articles/ssl-certificate-self qui fonctionnait bien car j'avais besoin des fichiers server.crt et server.key pour ce que je faisais. Maintenant, je dois générer de nouveaux certificats qui incluent le SAN cependant toutes mes tentatives jusqu'à présent n'ont pas fonctionné avec Chrome 58.

Voici ce que j'ai fait :

J'ai suivi les étapes de l'article Heroku mentionné ci-dessus pour générer la clé. J'ai ensuite rédigé un nouveau fichier de configuration OpenSSL :

[ req ]
default_bits        = 2048
distinguished_name  = req_distinguished_name
req_extensions      = san
extensions          = san
[ req_distinguished_name ]
countryName         = US
stateOrProvinceName = Massachusetts
localityName        = Boston
organizationName    = MyCompany
[ san ]
subjectAltName      = DNS:dev.mycompany.com

Puis j'ai généré le server.crt avec la commande suivante :

openssl req \
-new \
-key server.key \
-out server.csr \
-config config.cnf \
-sha256 \
-days 3650

Je suis sur un Mac, donc j'ai ouvert le fichier server.crt avec Keychain, l'ai ajouté à mes Certificats Système. Je l'ai ensuite défini en tant que Toujours faire confiance.

À l'exception du fichier de configuration pour définir la valeur SAN, ce sont des étapes similaires à celles que j'ai utilisées dans les versions précédentes de Chrome pour générer et faire confiance au certificat auto-signé.

Cependant, après cela, je reçois toujours l'erreur ERR_CERT_COMMON_NAME_INVALID dans Chrome 58.

0 votes

2voto

Patrick Mevzek Points 7707

Ma solution est de garder le fichier principal openssl.cnf tel quel et juste à la fin d'ajouter une nouvelle section comme [ cert_www.example.com ] où www.example.com est le site web pour lequel je veux créer un certificat, et d'y mettre le subjectAltName dont j'aurais besoin (et tout autre information). Bien sûr, la section peut être nommée comme vous le souhaitez.

Après cela, je peux exécuter la commande openssl req comme avant, en ajoutant simplement -extensions cert_www.example.com pour que son contenu soit pris en compte et j'ajoute -subj pour ajouter directement toutes les informations du DN.

N'oubliez pas de vérifier le contenu du certificat après sa création et avant son utilisation, avec openssl x509 -text

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