web-dev-qa-db-fra.com

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

J'ai parcouru les étapes détaillées dans Comment utilisez-vous https/SSL sur localhost? mais cela crée un certificat auto-signé pour le nom de ma machine, et lors de la navigation via https : // localhost Je reçois l'avertissement IE.

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

106
chris

Bien que cette publication soit marquée pour Windows, il s'agit d'une question pertinente sur OS X à laquelle je n'ai pas vu de réponses pour ailleurs. Voici les étapes à suivre pour créer un certificat auto-signé pour localhost sur OS X:

# Use 'localhost' for the 'Common name'
openssl req -x509 -sha256 -nodes -newkey rsa:2048 -days 365 -keyout localhost.key -out localhost.crt

# Add the cert to your keychain
open localhost.crt

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

var options = {
    key: fs.readFileSync('/path/to/localhost.key').toString(),
    cert: fs.readFileSync('/path/to/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);
72
Ben Flynn

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

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

Remarque: makecert.exe est obsolète.

Référence de la cmdlet: https://technet.Microsoft.com/itpro/powershell/windows/pkiclient/new-selfsignedcertificate

44
Auri Rahimzadeh

Après avoir passé beaucoup de temps sur ce problème, je trouvais que chaque fois que je suivais les suggestions d'utilisation de IIS pour créer un certificat auto-signé, je constatais que les options Emis à À et Émis par n'étaient pas correctes. SelfSSL.exe était la clé pour résoudre ce problème. Le site Web suivant fournit non seulement une approche étape par étape pour la création de certificats auto-signés, mais résout également les problèmes Diffusé à et Émis par. Here est 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 vidéo cliquez ici .

Un exemple d'utilisation de SelfSSL ressemblerait à quelque chose comme:

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

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

44
app.developer.henry

Puisque cette question est étiquetée avec IIS et que je ne trouve pas de bonne réponse pour obtenir un certificat de confiance, je vais donner mes 2 centimes à ce sujet:

Commencez par utiliser la commande de @AuriRahimzadeh dans PowerShell en tant qu'administrateur:

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

C'est bien, mais le certificat n'est pas approuvé et entraînera l'erreur suivante. C'est parce qu'il n'est pas installé dans Trusted Root Certification Authorities.

enter image description here

Résolvez ceci en démarrant mmc.exe.

Ensuite aller à:

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

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

enter image description here

Copiez ceci dans Trusted Root Certification Authorities - Certificates

La dernière étape consiste à ouvrir Internet Information Services (IIS) Manager ou simplement inetmgr.exe. De là, allez sur votre site, sélectionnez Bindings... et Add... ou Edit.... Définissez https et sélectionnez votre certificat dans le menu déroulant.

enter image description here

Votre certificat est maintenant approuvé:

enter image description here

33
Ogglas

Si vous essayez de créer un certificat auto-signé qui vous permette d'aller 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

De http://social.msdn.Microsoft.com/Forums/en-US/wcf/thread/32bc5a61-1f7b-4545-a514-a11652f112

22
David Burela

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-orprogrammatically-in-net

Faites votre cert au format .pfx et importez-le dans IIS. Et ajoutez-le en tant qu'autorité de certification racine de confiance.

8
cederlof

Oui et non. Les certificats auto-signés génèrent ce message d'avertissement, car le certificat n'a pas été signé par une autorité de certification de confiance. Vous pouvez envisager différentes options pour supprimer cet avertissement sur votre ordinateur local. Voir les réponses les mieux classées à cette question pour plus de détails:

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

J'espère que cela t'aides!


MODIFIER:

Désolé, je ne savais pas initialement que vous étiez obligé de vous héberger sur localhost. Vous pouvez essayer de suivre les instructions sur le lien ci-dessous pour "Générer un certificat auto-signé avec le nom commun correct".

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

0
Phil Klein