Amener Chrome à accepter le certificat auto-signé localhost

j'ai créé un certificat SSL auto-signé pour le CN localhost. Firefox accepte CE certificat après s'en être initialement plaint, comme prévu. Chrome et IE, cependant, refusent de l'accepter, même après avoir ajouté le certificat à la réserve de certificats système sous Trusted Roots. Même si le certificat est correctement installé lorsque je clique sur "View certificate information" dans le popup HTTPS de Chrome, il insiste 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?

842
demandé sur yanet.moralesr 0000-00-00 00:00:00

30 réponses

cela a fonctionné pour moi:

  1. en utilisant Chrome, cliquez sur une page de votre serveur via HTTPS et continuez après la page d'avertissement rouge (en supposant que vous n'avez pas déjà fait cela).
  2. Ouvrir Chrome Settings > Show advanced settings > HTTPS/SSL > Manage Certificates .
  3. cliquez sur l'onglet Authorities et faites défiler vers le bas pour trouver votre certificat sous le nom de l'organisme que vous avez donné au certificat.
  4. sélectionnez-le, Cliquez sur Modifier ( NOTE : dans les versions récentes de Chrome, le bouton est maintenant" avancé "au lieu de" modifier"), cochez toutes les cases et cliquez sur OK. Vous devrez peut-être redémarrer Chrome.

vous devriez obtenir le joli cadenas vert sur vos pages maintenant.

EDIT: j'ai essayé à nouveau sur une nouvelle machine et le certificat n'est pas apparu sur la fenêtre Gérer les certificats juste en continuant à partir de la page rouge des certificats non fiables. J'ai dû faire la

  1. sur la page avec le certificat non validé ( https:// est barré en rouge), cliquez sur la serrure > informations du certificat. NOTE: sur les nouvelles versions de chrome, vous devez ouvrir Developer Tools > Security , et sélectionner View certificate .
  2. cliquez sur le Details tab > Export . Choisissez PKCS #7, single certificate comme format de fichier.
  3. puis suivez mes instructions originales pour accéder à la page Gérer les certificats. Cliquez sur le Authorities tab > Import et choisissez le fichier que vous avez exporté le certificat, et assurez-vous de choisir PKCS #7, single certificate comme type de fichier .
  4. si on vous invite à la boutique de certification, choisissez Autorités de certification racine de confiance
  5. Cochez toutes les cases et cliquez sur OK. Redémarrez Google Chrome.
435
répondu kellen 2017-09-15 15:49:48

NON DÉNOMMÉS

collez simplement ceci dans votre chrome:

chrome://flags/#allow-insecure-localhost

vous devriez voir le texte en surbrillance disant: Autoriser les certificats invalides pour les ressources chargées à partir de localhost

cliquez sur Enable .

422
répondu Chris 2015-08-09 01:52:39

sur le Mac, vous pouvez utiliser L'utilitaire D'accès au porte-clés pour ajouter le certificat auto-signé au porte-clés du système, et Chrome l'acceptera. 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 de verrouillage avec un X et faites glisser-déposer l'icône de certificat sur le bureau,
  2. ouvrir ce fichier (se terminant par un .cer extension); Ceci ouvre l'application Porte-clés qui vous permet d'approuver le certificat.
125
répondu bjnord 2012-10-24 11:07:58

MISE À JOUR POUR CHROME 58+ (SORTIE 2017-04-19)

à partir de Chrome 58, identifiant l'hôte en utilisant seulement commonName est supprimé . Voir plus loin discussion ici et bug tracker ici . Dans le passé, subjectAltName était utilisé uniquement pour les certs multi-hôtes, de sorte que certains outils CA internes peuvent ne pas les inclure.

si votre les certs auto-signés fonctionnaient bien dans le passé mais ont soudainement commencé à générer des erreurs dans Chrome 58, c'est pourquoi.

donc, quelle que soit la méthode que vous utilisez pour générer votre certificat auto-signé (ou un certificat signé par une CA auto-signée), assurez-vous que le certificat du serveur contient un subjectAltName avec la bonne DNS et/ou IP entrée/entrées, même si c'est juste pour un hôte unique .

pour openssl, cela signifie votre config OpenSSL ( /etc/ssl/openssl.cnf sur Ubuntu) devrait avoir quelque chose de similaire à ce qui suit pour un seul hôte:

[v3_ca]   # and/or [v3_req], if you are generating a CSR
subjectAltName = DNS:example.com

ou pour hôtes multiples:

[v3_ca]   # and/or [v3_req], if you are generating a CSR
subjectAltName = DNS:example.com, DNS:host1.example.com, DNS:*.host2.example.com, IP:10.1.2.3

dans le lecteur Cert de Chrome (qui est passé à l'onglet "Sécurité" Sous F12) , vous devriez le voir listé sous Extensions comme Certificate Subject Alternative Name :

Chrome cert viewer


modifier: solution de contournement temporaire ci-dessous a été supprimé comme prévu dans Chrome 66 (publié en avril 2018)

TEMPORARY WORKAROUND

il est possible de revenir à l'ancien commonName comportement jusqu'à Chrome 65 , en utilisant le réglage suivant: EnableCommonNameFallbackForLocalanchors

sous Windows , cela peut être configuré sur un seul PC en utilisant la commande suivante du registre (thanks @Meengla):

reg add HKLM\Software\Policies\Google\Chrome /v EnableCommonNameFallbackForLocalAnchors /t REG_DWORD /d 1

sur Mac , la commande suivante peut être utilisée (merci @BugsBunny):

defaults write com.google.Chrome EnableCommonNameFallbackForLocalAnchors -bool true

sur Linux , créer un fichier de politique tel que /etc/opt/chrome/policies/managed/EnableCommonNameFallbackFor‌​LocalAnchors.json avec le contenu: { "EnableCommonNameFallbackForLocalAnchors": true } (merci @seanf)

Plus de détails sur l'établissement de ces politiques pour diverses plates-formes, y compris leur établissement via Windows GPO, peuvent être trouvés dans le haut de la page liée ainsi que le Chromium policy template guide et le administrateurs guide .


encore une fois, ces solutions de rechange sont temporaire jusqu'à la version 65!

104
répondu Toby J 2018-08-15 14:56:44

mise à jour 11/2017: cette réponse ne fonctionnera probablement pas pour la plupart des nouvelles versions de Chrome.

mise à jour 02/2016: de meilleures Instructions pour les utilisateurs Mac peuvent être trouvées ici .

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

    1. Cliquez sur l'onglet connexion , puis cliquez sur informations de certificat

    2. cliquez sur l'onglet détails , le bouton Copiez pour Fichier... . Cela ouvrira l'Assistant D'exportation de certificat, cliquez sur suivant pour accéder à l'écran format de fichier D'exportation .

    3. choisir DER encoded binaire X. 509 (.CER) , cliquez sur suivant

    4. , Cliquez Sur Parcourir"... et enregistrez le fichier sur votre ordinateur. Un nom descriptif. Cliquez sur Suivant , puis cliquez sur Terminer .

    5. ouvrez les paramètres Chrome, faites défiler vers le bas, et cliquez sur afficher les paramètres avancés...

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

    7. cliquez sur l'onglet Autorités de Certification racine de confiance , puis cliquez sur L'importation ... bouton. Ceci ouvre le magicien D'importation de certificat. Cliquez sur suivant pour accéder au fichier D'importation écran.

    8. , Cliquez Sur Parcourir"... et sélectionnez le fichier de certificat que vous avez sauvegardé plus tôt, 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 approuvées . Si ce n'est pas le cas, cliquez sur ... et sélectionnez-le. Cliquez sur Suivant et Terminer

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

    11. Redémarrez Chrome.

86
répondu kgrote 2017-11-03 17:24:29

Linux

si vous utilisez Linux, vous pouvez aussi suivre ces pages wiki officielles:

en gros:

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

maintenant, la commande suivante va ajouter 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, lancez la commande suivante:

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

S'il ne fonctionne toujours pas, vous pouvez être affecté par ce bug: numéro 55050: erreur Ubuntu SSL 8179

P. S. Veuillez également vous assurer que vous avez libnss3-tools , avant de pouvoir utiliser les commandes ci-dessus.

Si vous n'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 prime, vous pouvez utiliser les scripts pratiques suivants:

$ cat add_cert.sh
certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n  -i 
$ 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 :443 | sed -ne '/BEGIN CERT/,/END CERT/p'

Utilisation:

add_cert.sh [FILE]
list_cert.sh
download_cert.sh [DOMAIN]

dépannage

  • Run Chrome avec --auto-ssl-client-auth parameter

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

85
répondu kenorb 2012-12-20 16:42:51

cliquez n'importe où sur la page et tapez A BYPASS_SEQUENCE

thisisunsafe " is a BYPASS_SEQUENCE for Chrome version 65

" badidea " version de Chrome 62 - 64.

danger "utilisé pour travailler dans les versions précédentes de Chrome

vous n'avez pas besoin de chercher le champ d'entrée, tapez-le simplement. Il se sent étrange, mais c'est le travail.

j'ai essayé sur Mac High Sierra.

pour vérifier s'ils l'ont changée de nouveau, passez au chrome le plus récent code Source

pour chercher BYPASS_SEQUENCE, au moment où il ressemble à cela:

var BYPASS_SEQUENCE = window.atob('dGhpc2lzdW5zYWZl');

maintenant ils l'ont camouflé, mais pour voir la vraie BYPASS_SEQUENCE vous pouvez lancer la ligne suivante dans une console de navigateur.

console.log(window.atob('dGhpc2lzdW5zYWZl'));
72
répondu Yevgeniy Afanasyev 2018-03-07 23:24:00

sur le Mac, vous pouvez créer un certificat qui est entièrement fiable par Chrome et Safari au niveau du système en faisant ce qui suit:

# create a root authority cert
./create_root_cert_and_key.sh

# create a wildcard cert for mysite.com
./create_certificate_for_domain.sh mysite.com

# or create a cert for www.mysite.com, no wildcards
./create_certificate_for_domain.sh www.mysite.com www.mysite.com

ce qui précède utilise les scripts suivants, et un fichier de soutien v3.ext , à éviter sujet nom alternatif erreurs manquantes

si vous voulez créer un nouveau certificat auto-signé qui est entièrement fiable en utilisant votre propre autorité racine, vous pouvez le faire en utilisant ces scripts.

create_root_cert_and_key.sh

#!/usr/bin/env bash
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem

create_certificate_for_domain.sh

#!/usr/bin/env bash

if [ -z "" ]
then
  echo "Please supply a subdomain to create a certificate for";
  echo "e.g. www.mysite.com"
  exit;
fi

if [ ! -f rootCA.pem ]; then
  echo 'Please run "create_root_cert_and_key.sh" first, and try again!'
  exit;
fi
if [ ! -f v3.ext ]; then
  echo 'Please download the "v3.ext" file and try again!'
  exit;
fi

# Create a new private key if one doesnt exist, or use the xeisting one if it does
if [ -f device.key ]; then
  KEY_OPT="-key"
else
  KEY_OPT="-keyout"
fi

DOMAIN=
COMMON_NAME=${2:-*.}
SUBJECT="/C=CA/ST=None/L=NB/O=None/CN=$COMMON_NAME"
NUM_OF_DAYS=999
openssl req -new -newkey rsa:2048 -sha256 -nodes $KEY_OPT device.key -subj "$SUBJECT" -out device.csr
cat v3.ext | sed s/%%DOMAIN%%/"$COMMON_NAME"/g > /tmp/__v3.ext
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days $NUM_OF_DAYS -sha256 -extfile /tmp/__v3.ext 

# move output files to final filenames
mv device.csr "$DOMAIN.csr"
cp device.crt "$DOMAIN.crt"

# remove temp file
rm -f device.crt;

echo 
echo "###########################################################################"
echo Done! 
echo "###########################################################################"
echo "To use these files on your server, simply copy both $DOMAIN.csr and"
echo "device.key to your webserver, and use like so (if Apache, for example)"
echo 
echo "    SSLCertificateFile    /path_to_your_files/$DOMAIN.crt"
echo "    SSLCertificateKeyFile /path_to_your_files/device.key"

v3.poste 1519110920"
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = %%DOMAIN%%

un pas de plus - comment faire confiance aux certs signés dans Chrome / Safari

pour permettre aux certificats auto-signés D'être entièrement fiables dans Chrome et Safari, vous devez importer une nouvelle autorité de certification dans votre Mac. Pour ce faire, suivez ces instructions, ou les instructions plus détaillées sur ce processus général sur le site mitmproxy :

  1. Ouvrez Trousseau D'Accès
  2. Choisir "Système" dans le "porte-clés" liste
  3. choisir "certificats" dans la "liste de la catégorie
  4. Choisir " Fichier | Importer Des Articles..."
  5. Naviguez vers le fichier créé ci-dessus, "rootCA.pem", sélectionnez-le et cliquez sur "Ouvrir"
  6. Sélectionnez votre nouveau certificat importé dans la liste" certificats".
  7. cliquez sur le bouton "i", ou cliquez avec le bouton droit de votre certificat, et choisissez "Get Info "
  8. étendre l'option" confiance
  9. Changement "Lors de l'utilisation de ce certificat", "Toujours faire Confiance"
  10. fermez la boîte de dialogue et on vous demandera votre mot de passe.
  11. fermer et rouvrir tous les onglets qui utilisent votre domaine cible, et il sera chargé en toute sécurité!

et en prime, si vous avez besoin de clients java pour faire confiance aux certificats, vous pouvez le faire en important vos certs dans le java keystore. Notez que ceci supprimera le cert du keystore s'il existe déjà, car il doit le mettre à jour au cas où les choses changeraient. Il bien sûr que le fait pour les certificats importés.

import_certs_in_current_folder_into_java_keystore.sh

KEYSTORE="$(/usr/libexec/java_home)/jre/lib/security/cacerts";

function running_as_root()
{
  if [ "$EUID" -ne 0 ]
    then echo "NO"
    exit
  fi

  echo "YES"
}

function import_certs_to_java_keystore
{
  for crt in *.crt; do 
    echo prepping $crt 
    keytool -delete -storepass changeit -alias alias__${crt} -keystore $KEYSTORE;
    keytool -import -file $crt -storepass changeit -noprompt --alias alias__${crt} -keystore $KEYSTORE
    echo 
  done
}

if [ "$(running_as_root)" == "YES" ]
then
  import_certs_to_java_keystore
else
  echo "This script needs to be run as root!"
fi
59
répondu Brad Parks 2018-05-02 18:47:26

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

  1. cliquez sur la serrure avant le https: / /
  2. allez à L'onglet" Connexion
  3. Cliquez Sur "Information 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. Glisser ce petit certificat icône de votre bureau (ou ailleurs).

  5. double-cliquez sur le .le fichier cer qui a été téléchargé, cela devrait l'importer dans votre porte-clés et ouvrir L'accès Porte-Clés à votre liste de certificats.

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

    sinon:

  6. double-cliquez sur le certificat nouvellement ajouté.
  7. dans la liste déroulante, remplacer" lorsque vous utilisez ce certificat "par" toujours en confiance"."

maintenant rechargez la page en question et il devrait être Problème résolu! Espérons que cette aide.


Modifier Wolph

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

  1. Enregistrer la suite de script comme whitelist_ssl_certificate.ssh :

    #!/usr/bin/env bash -e
    
    SERVERNAME=$(echo "" | 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: "151900920" www.site.name"
        echo "http:// and such will be stripped automatically"
    fi
    
  2. Rendre le script exécutable (à partir du shell):

    chmod +x whitelist_ssl_certificate.ssh
    
  3. exécutez le script pour le domaine que vous voulez (il suffit de copier/coller l'url complète des travaux):

    ./whitelist_ssl_certificate.ssh https://your_website/whatever
    
55
répondu LunaCodeGirl 2017-10-19 07:07:29

UPDATED Apr 3/2018

recommandé par L'équipe Chromium

https://www.chromium.org/Home/chromium-security/deprecating-powerful-features-on-insecure-origins#TOC-Testing-Powerful-Features

"1519130920 Rapide" Super-Solution Facile

il y a une phrase de contournement secrète qui peut être tapée dans la page d'erreur pour que Chrome procède malgré la erreur de sécurité: thisisunsafe (dans les versions précédentes de Chrome, type badidea , et même plus tôt, danger ). DO NOT USE THIS UNLESS YOU UNDERSTAND EXACTLY WHY YOU NEED IT!

Source:

https://chromium.googlesource.com/chromium/src/+ / d8fc089b62cd4f8d907acff6fb3f5ff58f168697%5E % 21 /

(notez que window.atob('dGhpc2lzdW5zYWZl') se résout en thisisunsafe )

la dernière version de la source est @ https://chromium.googlesource.com/chromium/src/+/refs/heads/master/components/security_interstitials/core/browser/resources/interstitial_large.js et la fonction window.atob peuvent être exécutées dans une console JS.

pour le fond sur la raison pour laquelle L'équipe Chrome a changé la phrase de contournement (la première fois):

https://bugs.chromium.org/p/chromium/issues/detail?id=581189

Si tout le reste échoue

pour les one-offs rapides si L'option" Proceed Anyway "n'est pas disponible, ni la phrase de contournement ne fonctionne, ce hack fonctionne bien:

  1. autoriser les erreurs de certificat de localhost en activant ce drapeau (notez que Chrome doit redémarrer après avoir changé la valeur du drapeau)):

    chrome://flags/#allow-insecure-localhost

    (et le vote des réponses https://stackoverflow.com/a/31900210/430128 par @Chris)

  2. si le site auquel vous voulez vous connecter est localhost , vous avez terminé. Sinon, configurer un tunnel TCP pour écouter sur le port 8090 localement et se connecter à broken-remote-site.com sur le port 443, s'assurer que vous avez socat installé et exécuter quelque chose comme ça dans une fenêtre de terminal:

    socat tcp-listen:8090,reuseaddr,fork tcp:broken-remote-site.com:443

  3. passer à https://localhost:8090 dans votre navigateur.

35
répondu Raman 2018-04-03 19:44:34

pour un environnement d'essai

vous pouvez utiliser --ignore-certificate-errors comme paramètre de ligne de commande lors du lancement de chrome (travail sur la Version 28.0.1500.52 sur Ubuntu).

cela va l'amener à ignorer les erreurs et à se connecter sans avertissement. Si vous avez déjà une version de chrome en cours d'exécution, vous devrez la fermer avant de relancer à partir de la ligne de commande ou elle ouvrira une nouvelle fenêtre mais ignorera les paramètres.

j'ai configuré Intellij pour lancer chrome de cette façon lors du débogage, car les serveurs de test n'ont jamais de certificats valides.

Je ne recommande pas une navigation normale comme celle-ci, car les vérifications de certificats sont une caractéristique de sécurité importante, mais cela peut être utile à certains.

30
répondu Kieran Moore 2013-06-26 13:13:34

comme quelqu'un l'a noté, vous devez redémarrer tout Chrome, pas seulement les fenêtres du navigateur. La façon la plus rapide de le faire est d'ouvrir une onglet à...

chrome://restart

16
répondu DejerNet 2016-12-03 06:27:36

WINDOWS JUN / 2017 Windows Server 2012

j'ai suivi la réponse de @Brad Parks. Sur Windows vous devez importer rootCA.pem dans les Certificats Racine de Confiance magasin d'Autorités.

j'ai fait les étapes suivantes:

openssl genrsa -out rootCA.key 4096
openssl req -x509 -new -nodes -key rootCA.key -newkey rsa:4096 -sha256 -days 1024 -out rootCA.pem
openssl req -new -newkey rsa:4096 -sha256 -nodes -keyout device.key -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 2000 -sha256 -extfile v3.ext

où v3.poste:

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = localhost
IP.1 = 192.168.0.2
IP.2 = 127.0.0.1

alors, dans mon cas, j'ai une application web auto-hébergée, donc je dois lier certificat avec adresse IP et port, certificat devrait être sur mon magasin avec des informations clés privées, donc j'ai exporté au format pfx.

openssl pkcs12 -export -out device.pfx -inkey device.key -in device.crt

Avec la console mmc (Fichier/Ajouter ou Supprimer des composants logiciels enfichables/Certificats/Ajouter/Ordinateurt Compte/LocalComputer/OK) j'ai importé le fichier pfx dans le magasin.

plus tard, j'ai utilisé cette commande pour lier le certificat (vous pouvez aussi utiliser L'outil HttpConfig):

netsh http add sslcert ipport=0.0.0.0:12345 certhash=b02de34cfe609bf14efd5c2b9be72a6cb6d6fe54 appid={BAD76723-BF4D-497F-A8FE-F0E28D3052F4}

certhash=certificat Thumprint

appid=GUID (votre choix)

D'abord j'ai essayé d'importer le dispositif de certificat".crt" sur les Certificats Racine de Confiance des Autorités de différentes manières, mais je suis toujours la même erreur:

enter image description here

mais je me suis rendu compte que je devais importer le certificat d'autorité racine pas le certificat pour le domaine. J'ai donc utilisé la console mmc (Fichier/Ajouter ou Supprimer des composants logiciels enfichables/Certificats/Ajouter/Ordinateurt Compte/LocalComputer/OK) j'ai importé rootCA.pem dans les Certificats Racine de Confiance magasin d'Autorités.

enter image description here

Redémarrez google Chrome et et voilà ça fonctionne.

avec localhost:

enter image description here

ou avec adresse IP:

enter image description here

le la seule chose que je n'ai pas pu réaliser est que, il a obsolète cipher (carré rouge sur l'image). L'aide est appréciée sur ce point.

avec makecert il n'est pas possible d'ajouter des informations de SAN. Avec New-self-Signedcertificate (Powershell) vous pouvez ajouter des informations SAN, cela fonctionne aussi.

14
répondu UUHHIVS 2017-06-06 19:30:03

êtes-vous sûr que l'adresse indiquée sur le site est la même que celle du certificat? J'ai eu les mêmes problèmes avec Chrome et un cert auto-signé, mais à la fin j'ai trouvé qu'il était juste incroyablement difficile à propos de la validation du nom de domaine sur le cert (comme il se doit).

Chrome n'a pas son propre magasin cert et utilise celui de Window. Toutefois, Chrome ne fournit aucun moyen d'importer des certs dans le magasin, donc vous devriez les ajouter via IE à la place.

installation de certificats dans Google Chrome

installation de certificats dans Internet Explorer

regardez aussi ceci pour quelques approches différentes de la création de certs auto-signés (je suppose que vous utilisez IIS comme vous ne l'avez pas mentionné).

comment créer un certificat auto-signé dans IIS 7

10
répondu Ira Rainey 2011-09-28 09:50:59

j'ai suivi le processus d'utilisation de ce que bjnord a suggéré qui était: Google Chrome, Mac OS X et les certificats SSL auto-signés

ce qui est affiché sur le blog n'a pas fonctionné.

cependant, l'un des commentaires sur le blog était or:

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain site.crt

Vous aurez besoin de suivre le blog sur comment obtenir le fichier cert, après cela, vous pouvez utiliser le la commande ci-dessus et devrait être bon pour aller.

6
répondu James Oravec 2016-04-06 20:54:33

en cliquant sur l'icône de verrouillage barrée à côté de L'URL, vous obtiendrez une boîte ressemblant à ceci:

enter image description here

après avoir cliqué sur le lien information sur le certificat , vous verrez le dialogue suivant:

enter image description here

il vous indique quel magasin de certificats est le bon, C'est le certification racine de confiance Autorités magasin.

Vous pouvez utiliser l'une des méthodes décrites dans les autres réponses pour ajouter le certificat à cet stocker ou d'utiliser:

certutil -addstore -user "ROOT" cert.pem
  • ROOT est le Nom interne du magasin de certificats mentionné plus haut.
  • cert.pem est le nom de votre certificat auto-signé.
5
répondu Der Hochstapler 2013-09-26 15:15:35

ce post est déjà inondé de réponses, mais j'ai créé un bash script basé sur certaines des autres réponses pour le rendre plus facile à générer un certificat TLS auto-signé valide dans Chrome (testé dans Chrome 65.x ). J'espère que c'est utile pour les autres.

auto-signé-tls script bash

après l'installation ( et confiance ) le certificat, n'oubliez pas de redémarrer Chrome ( chrome://restart )


un autre outil à vérifier est la boîte à outils cfssl de CloudFlare:

cfssl

5
répondu Logan 2018-07-11 17:25:34

à partir de Chrome 58+ j'ai commencé à obtenir une erreur de certificat sur macOS en raison de SAN manquant. Voici comment obtenir la serrure verte sur la barre d'adresse à nouveau.

  1. générer un nouveau certificat avec la commande suivante:

    openssl req \
      -newkey rsa:2048 \
      -x509 \
      -nodes \
      -keyout server.key \
      -new \
      -out server.crt \
      -subj /CN=*.domain.dev \
      -reqexts SAN \
      -extensions SAN \
      -config <(cat /System/Library/OpenSSL/openssl.cnf \
          <(printf '[SAN]\nsubjectAltName=DNS:*.domain.dev')) \
      -sha256 \
      -days 720
    
  2. Importer server.crt dans votre Trousseau de clés, puis double-cliquez sur le certificat, développez le Confiance , et sélectionnez Toujours Faire Confiance

rafraîchir la page https://domain.dev dans Google Chrome, donc la serrure Verte est de retour.

4
répondu Adriano Rosa 2017-06-27 15:50:08

ça a marché pour moi. Voir: http://www.robpeck.com/2010/10/google-chrome-mac-os-x-and-self-signed-ssl-certificates/#.Vcy8_ZNVhBc

dans la barre d'adresse, cliquez sur la petite serrure avec le X. Ceci affichera un petit écran d'information. Cliquez sur le bouton qui dit "Certificat d'Informations."

cliquez et faites glisser l'image sur votre bureau. On dirait un petit certificat.

double-cliquez dessus. Le Trousseau d'Accès de l'utilitaire. Entrez votre mot de passe pour le déverrouiller.

assurez-vous d'ajouter le certificat au porte-clés Système, pas le porte-clés login. Cliquez sur "Toujours faire confiance", même si cela ne semble pas faire quoi que ce soit.

Après qu'il a été ajouté, double-cliquez dessus. Vous devrez peut-être vous authentifier à nouveau.

étendre la section" confiance".

" lors de l'utilisation de ce certificat," défini à " toujours confiance"

3
répondu Vincil Bishop 2015-08-13 16:05:05

2017-06-27 nouvelle méthode:

openssl req \
    -newkey rsa:2048 \
    -x509 \
    -nodes \
    -keyout yoursite.key \
    -new \
    -out yoursite.crt \
    -subj /CN=yoursite.dev \
    -reqexts SAN \
    -extensions SAN \
    -config <(cat /System/Library/OpenSSL/openssl.cnf \
        <(printf '[SAN]\nsubjectAltName=DNS:yoursite.dev')) \
    -sha256 \
    -days 3650

Ensuite, ajoutez votre site.crt et votresite.la clé de votre nginx conf.

de: https://github.com/webpack/webpack-dev-server/issues/854

3
répondu zhi.yang 2017-06-27 14:25:40

j'ai tout essayé et ce qui l'a fait fonctionner: lors de l'importation, sélectionner la bonne catégorie, à savoir Trusted Root Certificate Authorities :

(désolé c'est en allemand, mais il suffit de suivre l'image)

enter image description here

3
répondu Hannes Schneidermayer 2018-04-06 12:56:51

j'ai dû modifier le lanceur Chrome sur macosx et j'ai ajouté le script ci-dessous. Enregistré comme ci-dessous;

/Applications / Google\ Chrome.app/Contents/MacOS / Chrome.commande

#!/bin/sh
RealBin="Google Chrome"
AppDir="$(dirname ""151900920"")"
exec "$AppDir/$RealBin" --ignore-certificate-errors "$@"

lorsque je lance Chrome avec ce script, les certificats auto-signés fonctionnent sans problème. Mais ne naviguez pas sur le web avec le navigateur lancé avec ce script vous ne serez pas averti de non valide les certificats!

2
répondu aug70co 2013-11-25 19:04:05

pour le développement sur Windows vous pouvez

ajouter à Chrome shortcut drapeau --ignore-certificate-errors

il s'attendait à ignorer les erreurs de certificat et à vous permettre d'accéder à des sites Web de certificats invalides.

Des instructions plus détaillées dans https://support.opendns.com/entries/66657664 .

enter image description here

2
répondu Binyamin 2016-08-10 19:15:14

je rencontrais le même problème: j'avais installé le certificat dans les autorités racine de confiance de Windows, et Chrome a toujours refusé le certificat, avec l'erreur ERR_CERT_COMMON_NAME_INVALID . Notez que lorsque le certificat n'est pas correctement installé dans le magasin, l'erreur est ERR_CERT_AUTHORITY_INVALID .

comme indiqué par le nom de l'erreur, ce commentaire , et cette question , le problème se trouvait dans le nom de domaine déclaré dans le certificat. lorsqu'on m'a demandé le" nom commun "pendant que je générais le certificat, j'ai dû entrer le nom de domaine que j'utilisais pour accéder au site ( localhost dans mon cas). J'ai redémarré Chrome en utilisant chrome://restart et il a finalement été heureux avec ce nouveau certificat.

2
répondu Hugo Wood 2017-05-23 12:34:53

j'ai corrigé ce problème pour moi-même sans changer les paramètres sur les navigateurs avec les certifications SSL appropriées. J'utilise un mac donc il a fallu une mise à jour du porte-clés pour mes certifications ssl. J'ai dû ajouter des noms alt sujets à la certification ssl pour que chrome l'accepte. À partir d'aujourd'hui, C'est pour le numéro de version Chrome: 62.0.3202.94

mon exemple sont faciles à utiliser les commandes et les fichiers de configuration:

ajouter ces fichiers et cet exemple en est une racine répertoire

ssl.conf

[ req ]
default_bits       = 4096
distinguished_name = req_distinguished_name
req_extensions     = req_ext

[ req_distinguished_name ]
countryName                 = Country Name (2 letter code)
stateOrProvinceName         = State or Province Name (full name)
localityName                = Locality Name (eg, city)
organizationName            = Organization Name (eg, company)
commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_max              = 64

[ req_ext ]
subjectAltName = @alt_names

[alt_names]
DNS.1   = localhost

exécuter la commande pour créer la certification:

openssl req -newkey rsa:4096 -nodes -keyout key.pem -x509 -days 3650 -out certificate.pem -extensions req_ext -config ssl.conf -subj '/CN=localhost/O=Stackflow/C=US/L=Los Angeles/OU=StackflowTech'

pour macs uniquement pour ajouter certification de confiance (obligatoire):

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ./certificate.pem

pour windows vous devez trouver comment vérifier nos certificats ssl localement indépendamment. Je N'utilise pas Windows. Désolé les gars de windows et les filles.

j'utilise un noeud.js server avec express.js n'a besoin que de ma clé et la certification avec quelque chose comme ceci:

app.js

const https = require('https');
const Express = require('express');
const fs = require('fs');
const app = new Express();
const server = https.createServer({
    key: fs.readFileSync('./key.pem'),
    cert: fs.readFileSync('./certificate.pem'),
}, app);
server.listen(3000);

je peux faire cela pour d'autres cadres d'arrière-plan dans le futur, donc je peux mettre à jour cet exemple pour d'autres dans le futur. Mais c'était ma solution pour le noeud.js pour ce problème. Effacer le cache du navigateur et lancer votre application sur https: / /

voici un exemple d'exécution https://localhost sur un noeud.js server pour les utilisateurs Mac:

https://github.com/laynefaler/Stack-Overflow-running-HTTPS-localhost

Bon Codage!

2
répondu Layne Faler 2017-11-29 14:42:31

ça n'a pas marché pour moi quand j'ai essayé d'importer le certificat dans le navigateur... Dans GoogleChrome open Developer Tools > sécurité, et sélectionnez View certificate. Cliquez sur L'onglet Détails et exportez-le.

/ / LINUX

sudo apt-get install libnss3-tools 

certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n [EXPORTED_FILE_PATH] -i [EXPORTED_FILE_PATH]

lancez cette commande et si vous voyez le fichier que vous venez d'importer, vous pouvez y aller!

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

/ / Windows

Start => run => certmgr.msc

sur le côté gauche, sélectionnez Trusted Root Autorités De Certification = > Personnelles. Cliquez sur l'onglet actions = > toutes les actions / importer puis choisissez le fichier que vous avez exporté auparavant à partir du navigateur

n'oubliez pas de redémarrer chrome!!!

BONNE CHANCE! ;)

2
répondu Fodort 2017-12-14 08:34:01

c'est quelque chose qui revient sans cesse -- surtout pour Google Chrome sur Mac OS X Yosemite!

heureusement, un de notre équipe de développement m'a envoyé ce lien aujourd'hui, et la méthode fonctionne de manière fiable, tout en vous permettant de contrôler pour quels sites vous acceptez les certificats.

https://www.reddit.com/r/sysadmin/comments/3ercx4/chrome_shortcut_past_the_your_connection_is_not/cthporl

jersully écrit:

si vous ne voulez pas vous embêter avec les certificats internes...

  1. Type chrome://flags/ dans la barre d'adresse.
  2. Faites défiler vers ou recherchez les décisions Remember pour passer par des erreurs SSL pour une durée spécifiée.
  3. sélectionnez Se souvenir pendant trois mois.
1
répondu John Landells 2016-03-28 17:06:02

SSL / HTTPS localhost fix on the mac / osx:

  1. cliquez sur la serrure rouge avec la croix dans votre barre d'adresse lorsque vous essayez d'ouvrir votre environnement https localhost. Il ouvrira une fenêtre avec des informations sur le certificat.

  2. cliquez sur" Détails" fenêtre d'information

  3. les outils de développement chrome s'ouvre sur l'onglet "Sécurité". Cliquez sur voir le certificat . Le certificat de l'image
  4. ajoutez-le à votre porte-clés 'System' (pas votre porte-clés 'login' qui est sélectionné par défaut).

  5. ouvrez votre porte-clés (à nouveau) et trouvez le certificat. Cliquez dessus et assurez-vous que vous "faites confiance" à tous.

  6. redémarrez chrome et ça devrait marcher.

1
répondu cscheltinga 2016-06-29 12:54:32

Que dois-je faire pour que Chrome accepte le certificat et cesse de s'en plaindre?

vous devez créer une ICP avec;

1)auto-signé Root CA.

2) certificat sub / intermédiaire [signé par L'AC racine].

3) certificat normal / d'entité finale [signé soit par L'AC racine, soit par une sous-AC] (commonName ou subjectAltName (SAN) en tant que localhost) (également inclure https://localhost/ comme l'URI de SAN).

4) l'Importation / l'Installation de cette autorité de certification Racine de votre système d'exploitation Windows (parce que vous l'avez mentionné, c'est à dire. Google Chrome utilise les mêmes ressources tout en recherchant la chaîne de certificats - https://www.chromium.org/Home/chromium-security/root-ca-policy ) comme "Autorités de Certification racine de confiance".

5) Installez ce certificat d'entité finale comme votre certificat de serveur web, et il se plaindre de ce message d'erreur.

Espérons que cette aide.

1
répondu Konsortium ICT Pantai Timur 2017-01-31 10:24:53

pour Chrome sur MacOS, si vous avez préparé un certificat:

  • Quit Chrome ( cmd + Q ).
  • Lancez l'application D'accès au porte-clés et ouvrez la catégorie" certificats".
  • faites glisser votre fichier de certificat dans la fenêtre D'accès au porte-clés et tapez le mot de passe pour le fichier de certificat.
  • double clic sur votre certificat et déplier la " confiance" liste.
    • in row "en utilisant ce certificat, "choose" Always Trust."
    • fermez ce truc et tapez votre mot de passe.
  • démarrez Chrome et nettoyez toutes les caches.
  • vérifiez que tout va bien.
1
répondu Alykoff Gali 2018-02-02 15:22:03