159 votes

Comment créer un certificat auto-signé pour un nom de domaine pour le développement

J'ai subdomain.example.com que j'utilise à des fins de développement. Ma solution d'application web contient une API web, etc., que j'ai besoin d'appeler à partir de systèmes externes, donc je n'utilise pas localhost.

J'ai maintenant besoin de tester pour SSL et j'ai besoin d'un certificat pour mon domaine de développement subdomain.example.com.

J'ai essayé de créer un certificat auto-signé comme indiqué dans Create a Self-Signed Server Certificate in IIS 7, mais ce certificat ne fonctionne que localement. Ce certificat peut-il être utilisé à des fins ou devrai-je créer un certificat auto-signé pour mon sous-domaine de développement ?

149voto

Tom Hall Points 1687

Utilisation de PowerShell

À partir de Windows 8.1 et de Windows Server 2012 R2 (Windows PowerShell 4.0) et versions ultérieures, vous pouvez créer un certificat auto-signé en utilisant le nouveau cmdlet New-SelfSignedCertificate:

Exemples:

New-SelfSignedCertificate -DnsName www.mondomaine.exemple -CertStoreLocation cert:\LocalMachine\My

New-SelfSignedCertificate -DnsName sousdomaine.mondomaine.exemple -CertStoreLocation cert:\LocalMachine\My

New-SelfSignedCertificate -DnsName *.mondomaine.exemple -CertStoreLocation cert:\LocalMachine\My

Utilisation du gestionnaire IIS

Notez que les certificats IIS utilisent le hachage SHA-1, qui n'est pas pris en charge par les navigateurs modernes. IIS ne peut pas créer de certificats en utilisant des options de hachage SHA-2, donc il ne peut pas créer de certificats SSL acceptés par les navigateurs modernes.

  1. Lancer le gestionnaire IIS
  2. Au niveau du serveur, sous IIS, sélectionnez Certificats de serveur
  3. Dans la colonne de droite sous Actions, sélectionnez Créer un certificat auto-signé
  4. Lorsqu'il est demandé de "Spécifier un nom convivial pour le certificat", saisissez un nom approprié pour référence.
    • Exemples : www.domaine.exemple ou sousdomaine.domaine.exemple
  5. Ensuite, sélectionnez votre site web dans la liste à gauche
  6. Dans la colonne de droite sous Actions, sélectionnez Liaisons
  7. Ajoutez une nouvelle liaison HTTPS et sélectionnez le certificat que vous venez de créer (si votre certificat est un certificat générique, vous devrez spécifier un nom d'hôte)
  8. Cliquez sur OK et testez-le.

143voto

jlmt Points 368

Avec la fonctionnalité de certificat auto-signé d'IIS, vous ne pouvez pas définir le nom commun (CN) du certificat, et donc ne pouvez pas créer de certificat lié à votre choix de sous-domaine.

Une façon de contourner le problème est d'utiliser makecert.exe, qui est inclus dans le SDK .Net 2.0. Sur mon serveur, il se trouve à :

C:\Program Files\Microsoft.Net\SDK\v2.0 64bit\Bin\makecert.exe

Vous pouvez créer une autorité de signature et la stocker dans le dépôt de certificats LocalMachine comme suit (ces commandes doivent être exécutées à partir d'un compte Administrateur ou dans une invite de commandes privilégiée) :

makecert.exe -n "CN=My Company Development Root CA,O=My Company,
 OU=Development,L=Wallkill,S=NY,C=US" -pe -ss Root -sr LocalMachine
 -sky exchange -m 120 -a sha1 -len 2048 -r

Vous pouvez ensuite créer un certificat lié à votre sous-domaine et signé par votre nouvelle autorité :

(Notez que la valeur du paramètre -in doit être la même que la valeur CN utilisée pour générer votre autorité ci-dessus.)

makecert.exe -n "CN=subdomain.example.com" -pe -ss My -sr LocalMachine
 -sky exchange -m 120 -in "My Company Development Root CA" -is Root
 -ir LocalMachine -a sha1 -eku 1.3.6.1.5.5.7.3.1

Votre certificat devrait ensuite apparaître dans le gestionnaire IIS pour être lié à votre site comme expliqué dans le post de Tom Hall.

Tous les mérites de cette solution reviennent à Mike O'Brien pour son excellent article de blog sur http://www.mikeobrien.net/blog/creating-self-signed-wildcard

67voto

DivineOps Points 1005

Pour créer le nouveau certificat pour votre domaine spécifique :

Ouvrez PowerShell ISE en tant qu'administrateur, exécutez la commande :

New-SelfSignedCertificate -DnsName *.mydomain.example, localhost -CertStoreLocation cert:\LocalMachine\My

Pour faire confiance au nouveau certificat :

  • Ouvrez mmc.exe
  • Allez à Console Root -> Certificats (Ordinateur local) -> Personnel
  • Sélectionnez le certificat que vous avez créé, faites un clic droit -> Toutes les tâches -> Exporter et suivez l'assistant d'exportation pour créer un fichier .pfx
  • Allez à Console Root -> Certificats -> Autorités de certification racine de confiance et importez le nouveau fichier .pfx

Pour lier le certificat à votre site :

  • Ouvrez Gestionnaire IIS
  • Sélectionnez votre site et choisissez Modifier le site -> Liaisons dans le volet de droite
  • Ajoutez une nouvelle liaison HTTPS avec le nom d'hôte correct et le nouveau certificat

20voto

Joseph Points 4812

J'ai rencontré ce même problème lorsque je voulais activer SSL pour un projet hébergé sur IIS 8. J'ai posté un article détaillé sur mon blog ici, mais je ne veux pas vous donner une réponse sous forme de lien. Finalement, l'outil que j'ai utilisé était OpenSSL, après avoir passé de nombreux jours à lutter avec les commandes makecert. Le certificat a été généré sous Debian, mais j'ai pu l'importer facilement dans IIS 7 et 8.

Téléchargez le OpenSSL compatible avec votre système d'exploitation et ce fichier de configuration. Définissez le fichier de configuration comme configuration par défaut d'OpenSSL.

Tout d'abord, nous allons générer la clé privée et le certificat de l'Autorité de Certification (CA). Ce certificat sert à signer la demande de certificat (CSR).

Vous devez remplir tous les champs requis dans ce processus.

  1. openssl req -new -x509 -days 3650 -extensions v3_ca -keyout root-cakey.pem -out root-cacert.pem -newkey rsa:4096

Vous pouvez créer un fichier de configuration avec les paramètres par défaut comme ceci : Maintenant, nous allons générer la demande de certificat, qui est le fichier envoyé aux Autorités de Certification.

Le Common Name doit être défini sur le nom de domaine de votre site, par exemple : public.organization.com.

  1. openssl req -new -nodes -out server-csr.pem -keyout server-key.pem -newkey rsa:4096

Maintenant, la demande de certificat est signée avec le certificat CA généré.

  1. openssl x509 -req -days 365 -CA root-cacert.pem -CAkey root-cakey.pem -CAcreateserial -in server-csr.pem -out server-cert.pem

Le certificat généré doit être exporté dans un fichier .pfx qui peut être importé dans IIS.

  1. openssl pkcs12 -export -out server-cert.pfx -inkey server-key.pem -in server-cert.pem -certfile root-cacert.pem -name "Self Signed Server Certificate"

À cette étape, nous allons importer le certificat CA.

  1. Dans votre serveur, vous devez importer le certificat CA dans les Autorités de Certification Racines de Confiance, pour que IIS puisse faire confiance au certificat à importer. N'oubliez pas que le certificat à importer dans IIS a été signé avec le certificat du CA.
  • Ouvrez l'invite de commandes et tapez mmc.
  • Cliquez sur Fichier.
  • Sélectionnez Ajouter/Supprimer une extension....
  • Double-cliquez sur Certificats.
  • Sélectionnez Compte de l'ordinateur et Suivant ->.
  • Sélectionnez Ordinateur local et Terminer.
  • Ok.
  • Allez dans Certificats -> Autorités de Certification Racines de Confiance -> Certificats, faites un clic droit sur Certificats et sélectionnez Toutes les tâches -> Importer ...

description de l'image ici

  • Sélectionnez Suivant -> Parcourir ...
  • Vous devez sélectionner Tous les fichiers pour parcourir l'emplacement du fichier root-cacert.pem.
  • Cliquez sur Suivant et sélectionnez Placer tous les certificats dans le magasin suivant : Autorités de Certification Racines de Confiance.
  • Cliquez sur Suivant et Terminer.

description de l'image ici

Avec cette étape, IIS fait confiance à l'authenticité de notre certificat.

  1. Dans notre dernière étape, nous importerons le certificat dans IIS et ajouterons le site de liaison.
  • Ouvrez Gestionnaire des services Internet (IIS) ou tapez inetmgr dans l'invite de commandes et allez dans Certificats de serveur.
  • Cliquez sur Importer....
  • Spécifiez le chemin du fichier .pfx, le mot de passe et sélectionnez le magasin de certificats sur Hébergement Web.

description de l'image ici

  • Cliquez sur OK.

  • Allez maintenant sur votre site dans le Gestionnaire IIS et sélectionnez Liaisons... et Ajouter une nouvelle liaison.

  • Sélectionnez https comme type de liaison et vous devriez pouvoir voir le certificat importé.

  • Cliquez sur OK et c'est terminé.

description de l'image ici

3voto

testpattern Points 499

Une autre option consiste à créer un certificat auto-signé qui vous permet de spécifier le nom de domaine par site Web. Cela signifie que vous pouvez l'utiliser sur de nombreux noms de domaine.

Dans le gestionnaire IIS

  1. Cliquez sur le nœud du nom de la machine
  2. Ouvrez Certificats du serveur
  3. Dans le panneau Actions, choisissez "Créer un certificat auto-signé"
  4. Dans "Spécifier un nom convivial...", nommez-le *Dev (sélectionnez "Personnel" dans la liste des types)
  5. Enregistrez

Maintenant, sur votre site Web dans IIS...

  1. Gérez les liaisons
  2. Créez une nouvelle liaison pour Https
  3. Choisissez votre certificat auto-signé dans la liste
  4. Une fois sélectionné, la boîte du nom de domaine deviendra active et vous pourrez saisir votre nom de domaine.

entrer la description de l'image ici

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