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

139voto

Ogglas Points 1

Étant donné que cette question est étiquetée avec IIS et que je ne trouve pas de bonne réponse sur la manière d'obtenir un certificat de confiance, je vais donner mon avis à ce sujet :

Tout d'abord, utilisez la commande de @AuriRahimzadeh dans PowerShell en tant qu'administrateur :

New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(100)

Ajouté la validité à 100 ans pour que le certificat pour localhost n'expire pas. Vous pouvez utiliser -NotAfter (Get-Date).AddMonths(24) pour 24 mois si vous le souhaitez ou toute autre valeur.

C'est bien, mais le certificat n'est pas de confiance et entraînera l'erreur suivante. C'est parce qu'il n'est pas installé dans Autorités de certification racines de confiance.

entrer la description de l'image ici

Résolvez cela en lançant mmc.exe.

Ensuite, allez à :

Fichier -> Ajouter ou supprimer des composants logiciels enfichables -> Certificats -> Ajouter -> Compte d'ordinateur -> Ordinateur local. Cliquez sur Terminer.

Développez le dossier Personnel et vous verrez votre certificat localhost :

entrer la description de l'image ici

Copiez le certificat dans le dossier Autorités de certification racines de confiance - Certificats.

La dernière étape consiste à ouvrir Gestionnaire de services Internet (IIS) ou simplement inetmgr.exe. De là, accédez à votre site, sélectionnez Liaisons... et Ajouter... ou Modifier.... Définissez https et sélectionnez votre certificat dans la liste déroulante.

entrer la description de l'image ici

Votre certificat est maintenant de confiance :

entrer la description de l'image ici

11 votes

Cela devrait être la réponse acceptée! Ça fonctionne! Si vous avez bidouillé avec le localhost et le certificat de confiance. Assurez-vous de supprimer tous les anciens certificats localhost (via la console mmc et IIS (serveur géré en haut)

0 votes

Merci! Il y a tellement de réponses de SO et de billets de blog sur ce sujet, mais très peu parlent des problèmes de confiance dans les certificats. Astuce: Peut-être devriez-vous expliquer pourquoi vous n'utilisez pas le port SSL par défaut 443? Je suppose que c'est parce que ce port est souvent utilisé par un autre processus.

0 votes

Vraiment bonne réponse, et fonctionne bien sur IIS en 2020. Merci beaucoup!

95voto

Ben Flynn Points 5346

Bien que ce post soit étiqueté pour Windows, c'est une question pertinente sur OS X pour laquelle je n'ai pas trouvé de réponses ailleurs. Voici les étapes pour créer un certificat auto-signé pour localhost sur OS X:

# Utilisez 'localhost' pour le 'Nom commun'
openssl req -x509 -sha256 -nodes -newkey rsa:2048 -days 365 -keyout localhost.key -out localhost.crt

# Ajoutez le certificat à votre trousseau de clés
open localhost.crt

Dans Keychain Access, double-cliquez sur ce nouveau certificat localhost. Développez la flèche à côté de "Confiance" et choisissez "Toujours faire confiance". Chrome et Safari devraient maintenant faire confiance à ce certificat. Par exemple, si vous voulez utiliser ce certificat avec node.js :

var options = {
    key: fs.readFileSync('/chemin/vers/localhost.key').toString(),
    cert: fs.readFileSync('/chemin/vers/localhost.crt').toString(),
    ciphers: 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA384',
    honorCipherOrder: true,
    secureProtocol: 'TLSv1_2_method'
};

var server = require('https').createServer(options, app);

2 votes

La première commande, ssh-keygen, est inutile car la commande openssl crée aussi une nouvelle clé (et écrase celle créée par ssh).

0 votes

@FélixSaparelli Tout à fait raison. J'ai somehow manqué ça. En train de éditer la réponse.

8 votes

Vous pouvez également automatiser le processus en ajoutant -subj '/CN=localhost' aux arguments de openssl.

57voto

Auri Rahimzadeh Points 558

Vous pouvez utiliser PowerShell pour générer un certificat auto-signé avec le cmdlet new-selfsignedcertificate :

New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"

Remarque : makecert.exe est obsolète.

Référence du cmdlet : https://learn.microsoft.com/fr-fr/powershell/module/pki/new-selfsignedcertificate?view=windowsserver2022-ps

0 votes

Cela devrait être la réponse en date de 2017.

1 votes

Pour ceux qui suivent et ne savent pas comment procéder à l'installation du certificat résultant, suivez les étapes de cette vidéo, cela a fonctionné pour moi! youtube.com/watch?v=y4uKPUFmSZ0

9 votes

Où sont stockés les fichiers de clé et de crt?

46voto

Après avoir passé un bon moment sur ce problème, j'ai découvert que chaque fois que je suivais les suggestions d'utiliser IIS pour créer un certificat auto-signé, je trouvais que le destinataire et l'émetteur n'étaient pas corrects. SelfSSL.exe était la clé pour résoudre ce problème. Le site Web suivant non seulement proposait une approche étape par étape pour créer des certificats auto-signés, mais résolvait également le problème du destinataire et de l'émetteur. Voici la meilleure solution que j'ai trouvée pour créer des certificats auto-signés. Si vous préférez voir le même tutoriel sous forme de vidéo, cliquez ici.

Un exemple d'utilisation de SelfSSL ressemblerait à ce qui suit :

SelfSSL /N:CN=VotreSiteWeb.com /V:1000 /S:2

SelfSSL /? fournira une liste de paramètres avec explications.

0 votes

L'article de RobBagby.com a parfaitement fonctionné pour moi. Bonne trouvaille Henry.

0 votes

MEGA! Cette vidéo a une qualité médiocre mais contient tout ce qu'il faut.

2 votes

Le lien vers le site de robbagby est mort. Consultez ma réponse pour 2 tutoriels de haute qualité sur YouTube par CodeCowboyOrg.

23voto

David Burela Points 116

Si vous essayez de créer un certificat auto-signé qui vous permet d'accéder à http://localhost/mysite Alors voici comment le créer

makecert -r -n "CN=localhost" -b 01/01/2000 -e 01/01/2099 -eku 1.3.6.1.5.5.7.3.1 -sv localhost.pvk localhost.cer
cert2spc localhost.cer localhost.spc
pvk2pfx -pvk localhost.pvk -spc localhost.spc -pfx localhost.pfx

Source : http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/32bc5a61-1f7b-4545-a514-a11652f11200

2 votes

Où est allé mon certificat : ce n'est pas dans C:\Windows\system32

2 votes

Au fait, l'outil makecert.exe est utilisé via l'invite de commandes de Visual Studio pour les lecteurs futurs. Vous pouvez également utiliser les outils de kit de ressources de Services d'Information Internet (IIS) et installer SelfSSL 1.0. microsoft.com/downloads/en/…

3 votes

Tandis que les réponses rapides sont géniales, elles n'aident pas toujours. "Le certificat ne peut pas être utilisé en tant que certificat de serveur SSL" est une erreur que je vois dans IIS7. L'utilisateur avait également mentionné des avertissements du navigateur et non pas "Comment créer un certificat"?

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