185 votes

Comment puis-je créer un certificat auto-signé pour localhost ?

J'ai suivi les étapes détaillées dans Comment utilisez-vous https / SSL en local ? mais cela configure un certificat auto-signé pour le nom de ma machine, et lorsque je le parcours via https://localhost je reçois l'avertissement d'IE.

Y a-t-il un moyen de créer un certificat auto-signé pour "localhost" afin d'éviter cet avertissement ?

0 votes

Avez-vous installé le certificat en tant qu'autorité de certification ?

0 votes

J'ai suivi le processus pour installer un certificat auto-signé dans IIS sous Win7. Mais cela crée le certificat pour "nomdemachine", et j'ai besoin d'un certificat pour "localhost".

1 votes

Salut! Considérez définir la réponse d'Auri comme réponse principale car makecert est obsolète. Lien vers la réponse : stackoverflow.com/a/44164653/1461602

10voto

cederlof Points 1656

Je recommanderais l'outil de Pluralsight pour créer des certificats auto-signés : http://blog.pluralsight.com/selfcert-create-a-self-signed-certificate-interactively-gui-or-programmatically-in-net

Transformez votre certificat en .pfx et importez-le dans IIS. Et ajoutez-le en tant qu'autorité de certificat racine de confiance.

1 votes

Après avoir tâtonné avec toutes sortes de "magie" PowerShell et autres choses qui ne fonctionnaient tout simplement pas, l'outil de Pluralsight a généré un script fonctionnel pour moi en 30 secondes chrono, et cela inclut le temps qu'il m'a fallu pour manger la pizza (+ télécharger et extraire l'outil, je veux dire). Comme je suis toujours sous Windows 7 sur ce vieux portable, c'était la solution parfaite pour moi, merci !

4voto

Arjun Kava Points 139

La manière la plus rapide de générer un certificat localhost.

openssl req -x509 -out localhost.crt -keyout localhost.key \
  -newkey rsa:2048 -nodes -sha256 \
  -subj '/CN=localhost' -extensions EXT -config <( \
   printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")

3voto

Phil Klein Points 4169

Oui et non. Les certificats auto-signés entraînent ce message d'avertissement car le certificat n'a pas été signé par une autorité de certification de confiance. Il existe quelques options que vous pouvez envisager pour supprimer cet avertissement sur votre machine locale. Consultez les réponses les mieux classées à cette question pour plus de détails :

Que dois-je faire pour que Internet Explorer 8 accepte un certificat auto-signé ?

J'espère que cela vous aidera !


MODIFICATION :

Désolé, je n'étais pas initialement conscient que vous étiez limité à localhost. Vous pouvez essayer de suivre les instructions sur le lien ci-dessous pour "Générer un certificat auto-signé avec le bon nom commun".

http://www.sslshopper.com/article-how-to-create-a-self-signed-certificate-in-iis-7.html

0 votes

Non, le message d'avertissement est là parce que l'URL (localhost) ne correspond pas au nom de certificat, qui est délivré sous le nom de machine. Si je passe à mymachinename, alors je n'ai pas d'erreur. Malheureusement, je dois utiliser localhost et non le nom de la machine pour des raisons qui n'affectent pas la question.

1voto

clark yu Points 41

Vous pourriez essayer mkcert.

macos: brew install mkcert

1voto

jacouh Points 3599

Dans un LAN (réseau local), nous avons un ordinateur serveur, ici nommé xhost exécutant Windows 10, IIS est activé en tant que serveur Web. Nous devons accéder à cet ordinateur via un navigateur tel que Google Chrome non seulement à partir de localhost via https://localhost/ depuis le serveur lui-même, mais aussi à partir d'autres hôtes du LAN avec l'URL https://**xhost**/ :

https://localhost/
https://xhost/
https://xhost.local/
...

Avec cette manière d'accéder, nous n'avons pas de nom de domaine entièrement qualifié, mais seulement le nom d'ordinateur local xhost ici.

Ou depuis WAN:

https://dev.example.org/
...

Vous devez remplacer xhost par le nom réel de votre ordinateur local.

Aucune des solutions ci-dessus ne peut nous satisfaire. Après des jours d'essai, nous avons adopté la solution openssl.exe. Nous utilisons 2 certificats - un CA (certificat d'autorité auto-certifié) RootCA.crt et xhost.crt certifié par le premier. Nous utilisons PowerShell.

1. Créer et passer à un répertoire sécurisé :

cd C:\users\so\crt

2. Générer RootCA.pem, RootCA.key et RootCA.crt en tant qu'autorité de certification auto-certifiée :

openssl req -x509 -nodes -new -sha256 -days 10240 -newkey rsa:2048 -keyout RootCA.key -out RootCA.pem -subj "/C=ZA/CN=RootCA-CA"
openssl x509 -outform pem -in RootCA.pem -out RootCA.crt

3. Faire une demande de certification : xhost.key, xhost.csr :

C: Pays
ST: État
L: Localité (ville)
O: Nom de l'organisation
Unité d'Organisation
CN: Nom Commun

openssl req -new -nodes -newkey rsa:2048 -keyout xhost.key -out xhost.csr -subj "/C=ZA/ST=FREE STATE/L=Golden Gate Highlands National Park/O=WWF4ME/OU=xhost.home/CN=xhost.local"

4. Obtenir xhost.crt certifié par RootCA.pem :

openssl x509 -req -sha256 -days 1024 -in xhost.csr -CA RootCA.pem -CAkey RootCA.key -CAcreateserial -extfile domains.ext -out xhost.crt

avec le fichier extfile domains.ext définissant de nombreuses façons sécurisées d'accéder au site Web du serveur :

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
DNS.2 = xhost
DNS.3 = xhost.local
DNS.4 = dev.example.org
DNS.5 = 192.168.1.2

5. Créer xhost.pfx PKCS #12 :

en combinant à la fois la clé privée xhost.key et le certificat xhost.crt, permettant d'importer dans iis. Cette étape demande un mot de passe, veuillez le laisser vide en appuyant sur la touche [RETURN] (sans mot de passe) :

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

6. Importer xhost.pfx dans iis10:

installé dans l'ordinateur xhost (ici localhost). et Redémarrer le service IIS.

Gestionnaire des services Internet (IIS) d'IIS10 (%windir%\system32\inetsrv\InetMgr.exe)

entrer la description de l'image ici

entrer la description de l'image ici

7. Associer SSL avec le certificat xhost.local sur le port 443.

entrer la description de l'image ici

Redémarrer le service IIS.

8. Importer RootCA.crt dans les Autorités de Certification Racine Fiables

via Google Chrome dans n'importe quel ordinateur qui accédera au site Web https://xhost/.

\Google Chrome/…/Paramètres /[Avancé]/Confidentialité et sécurité/Sécurité/Gérer les certificats

Importer RootCA.crt

entrer la description de l'image ici

Le navigateur affichera cet arbre de certificats valide :

RootCA-CA
  |_____ xhost.local

entrer la description de l'image ici

Aucune erreur de certificat n'apparaîtra via le LAN, même via WAN par https://dev.example.org.

entrer la description de l'image ici

Voici le fichier de script PowerShell complet socrt.ps1 pour générer tous les fichiers de certificat requis à partir de zéro :

#
# Générer :
#   RootCA.pem, RootCA.key RootCA.crt
#
#   xhost.key xhost.csr xhost.crt
#   xhost.pfx
#
# créé le 15-EEC-2020
# modifié le 15-DÉC-2020
#
#
# changer vers un répertoire sûr :
#

cd C:\users\so\crt

#
# Générer RootCA.pem, RootCA.key & RootCA.crt en tant qu'autorité de certification :
#
openssl req -x509 -nodes -new -sha256 -days 10240 -newkey rsa:2048 -keyout RootCA.key -out RootCA.pem -subj "/C=ZA/CN=RootCA-CA"
openssl x509 -outform pem -in RootCA.pem -out RootCA.crt

#
# obtenir RootCA.pfx : permettant d'importer dans iis10: non requis.
#
#openssl pkcs12 -export -out RootCA.pfx -inkey RootCA.key -in RootCA.crt

#
# obtenir xhost.key xhost.csr :
#   C: Pays
#   ST: État
#   L: Localité (ville)
#   O: Nom de l'organisation
#   OU: Unité d'organisation
#   CN: Nom commun
#
openssl req -new -nodes -newkey rsa:2048 -keyout xhost.key -out xhost.csr -subj "/C=ZA/ST=FREE STATE/L=Golden Gate Highlands National Park/O=WWF4ME/OU=xhost.home/CN=xhost.local"

#
# obtenir xhost.crt certifié par RootCA.pem :
# pour afficher le contenu :
#   openssl x509 -in xhost.crt -noout -text
#
openssl x509 -req -sha256 -days 1024 -in xhost.csr -CA RootCA.pem -CAkey RootCA.key -CAcreateserial -extfile domains.ext -out xhost.crt

#
# obtenir xhost.pfx, permettant d'importer dans iis :
#
openssl pkcs12 -export -out xhost.pfx -inkey xhost.key -in xhost.crt

#
# importer xhost.pfx dans iis10 installé dans l'ordinateur xhost (ici localhost).
#

Pour installer openSSL pour Windows, veuillez visiter https://slproweb.com/products/Win32OpenSSL.html

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