Récemment, Chrome a cessé de fonctionner avec mes certificats SSL auto-signés et pense qu'ils ne sont pas sécurisés. Quand je regarde le certificat dans l' DevTools | Security
onglet, je peux voir qu'il dit
Autre nom de sujet manquant Le certificat de ce site ne contient pas d'extension de nom alternatif de sujet contenant un nom de domaine ou une adresse IP.
Erreur de certificat Il y a des problèmes avec la chaîne de certificats du site (net :: ERR_CERT_COMMON_NAME_INVALID).
Comment puis-je réparer cela?
google-chrome
ssl
https
pkix
Brad Parks
la source
la source
CN=www.example.com
est probablement faux. Les noms d'hôte vont toujours dans le SAN . S'il est présent dans le CN , il doit l'être également dans le SAN (vous devez le lister deux fois dans ce cas). Pour plus de règles et de raisons, consultez Comment signer une demande de signature de certificat avec votre autorité de certification et Comment créer un certificat auto-signé avec openssl? Vous devrez également placer le certificat auto-signé dans le magasin de confiance approprié.Réponses:
Pour résoudre ce problème, vous devez fournir un paramètre supplémentaire
openssl
lorsque vous créez le certificat, en gros-sha256 -extfile v3.ext
où
v3.ext
est un fichier comme celui-ci,%%DOMAIN%%
remplacé par le même nom que celui que vous utilisezCommon Name
. Plus d'informations ici et ici . Notez que généralement, vous définissez leCommon Name
et%%DOMAIN%%
sur le domaine pour lequel vous essayez de générer un certificat. Donc, si c'était le caswww.mysupersite.com
, vous l'utiliseriez pour les deux.v3.ext
Remarque: Les scripts qui résolvent ce problème et créent des certificats SSL entièrement fiables à utiliser dans Chrome, Safari et à partir de clients Java sont disponibles ici
Une autre note : Si tout ce que vous essayez de faire est d'empêcher Chrome de générer des erreurs lors de l'affichage d'un certificat auto-signé, vous pouvez dire à Chrome d'ignorer toutes les erreurs SSL pour TOUS les sites en le démarrant avec une option de ligne de commande spéciale, comme détaillé ici sur SuperUser
la source
bin\openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365 -sha256 -extfile v3.ext
. Bien sûr, vous devez toujours enregistrer lev3.ext
dans un fichier dans le même dossier.unknown option -extfile
. Comment puis-je réparer ça?extfile
directive dans la mauvaise commande openssl? Au lieu d'être utilisé dansopenssl req -new ...
, il est utilisé dansopenssl x509 -req ...
. Du moins, c'est ce que quelqu'un a dit ici , ce qui semble vrai d'après l'exemple que j'ai dans une autre réponse à une question similaire sur la façon de générer pleinement ces certificatsLa solution suivante a fonctionné pour moi sur Chrome 65 ( ref ) -
Créez un fichier de configuration OpenSSL (exemple: req.cnf)
Créez le certificat référençant ce fichier de configuration
la source
basicConstraints = CA:true
manquant?Script bash
J'ai créé un script bash pour faciliter la génération de certificats TLS auto-signés valides dans Chrome.
Testé
Chrome 65.x
et il fonctionne toujours. Assurez-vous de redémarrer Chrome après avoir installé de nouveaux certificats.Autres ressources
Un autre outil (beaucoup plus robuste) qui mérite d'être vérifié est la
cfssl
boîte à outils de CloudFlare :la source
J'utilise simplement le
-subj
paramètre ajoutant l'adresse IP des machines. Donc résolu avec une seule commande.Vous pouvez ajouter d'autres attributs tels que C, ST, L, O, OU, emailAddress pour générer des certificats sans y être invité.
la source
openssl.exe req -x509 -sha256 -newkey rsa:2048 -keyout certificate.key -out certificate.crt -days 365 -nodes -subj "/CN=my.domain.com" -addext "subjectAltName=DNS:my.domain.com"
IIS a alors besoin d'un*.pfx
format:openssl.exe pkcs12 -export -out certificate.pfx -inkey certificate.key -in certificate.crt
J'ai eu tellement de problèmes pour obtenir des certificats auto-signés fonctionnant sur macos / Chrome. Enfin, j'ai trouvé Mkcert, "Un simple outil de configuration zéro pour créer des certificats de développement de confiance localement avec tous les noms que vous souhaitez." https://github.com/FiloSottile/mkcert
la source
Faites une copie de votre configuration OpenSSL dans votre répertoire personnel:
ou sous Linux:
Ajouter un autre nom de sujet à
openssl-temp.cnf
, sous[v3_ca]
:Remplacez
localhost
par le domaine pour lequel vous souhaitez générer ce certificat.Générer un certificat:
Vous pouvez ensuite supprimer
openssl-temp.cnf
la source
J'ai pu me débarrasser de (net :: ERR_CERT_AUTHORITY_INVALID) en modifiant la valeur DNS.1 du fichier v3.ext
[alt_names] DNS.1 = domainname.com
Changez domainname.com avec votre propre domaine.
la source
Voici un moyen très simple de créer un certificat IP auquel Chrome fera confiance.
Le fichier ssl.conf ...
Où, bien sûr, 192.168.1.10 est l'adresse IP du réseau local à laquelle nous voulons que Chrome fasse confiance.
Créez le certificat:
Sous Windows, importez le certificat dans le magasin de certificats racine de confiance sur toutes les machines clientes. Sur un téléphone ou une tablette Android, téléchargez le certificat pour l'installer. Maintenant, Chrome fera confiance au certificat sur Windows et Android.
Sur Windows dev box, le meilleur endroit pour obtenir openssl.exe est de "c: \ Program Files \ Git \ usr \ bin \ openssl.exe"
la source
sur MAC à partir de la version 67.0.3396.99 de chrome, mon certificat auto-signé a cessé de fonctionner.
la régénération avec tout ce qui est écrit ici n'a pas fonctionné.
METTRE À JOUR
eu la chance de confirmer que mon approche fonctionne aujourd'hui :). Si cela ne fonctionne pas pour vous, assurez-vous que vous utilisez cette approche
copié à partir d'ici https://ksearch.wordpress.com/2017/08/22/generate-and-import-a-self-signed-ssl-certificate-on-mac-osx-sierra/
FIN DE LA MISE À JOUR
a finalement pu voir Green Secure uniquement lorsque j'ai supprimé mon certificat du système , et ajouté au trousseau local . (s'il y en a un - déposez-le d'abord). Je ne sais pas si cela compte, mais dans mon cas, j'ai téléchargé le certificat via Chrome et vérifié que la date de création est aujourd'hui - c'est donc celle que je viens de créer.
J'espère que cela sera utile pour quelqu'un qui y passe une journée.
ne mettez jamais à jour chrome!
la source
Si vous souhaitez exécuter votre serveur localhost, vous devez configurer
CN = localhost
etDNS.1 = localhost
.la source