55 votes

Utilisation de makecert pour le développement SSL

Voici ma situation :

J'essaie de créer un certificat SSL qui sera installé sur toutes les machines des développeurs, ainsi que sur deux serveurs internes (tout est hors production).

Que dois-je faire pour créer un certificat qui puisse être installé à tous ces endroits ?

Pour l'instant, j'ai quelque chose de ce genre, en utilisant l'application makecert de Microsoft Visual Studio 8. \SDK\v2.0\Bin :

makecert -r -pe -n "CN=MySite.com Dev" -b 01/01/2000 -e 01/01/2033 -eku 1.3.6.1.5.5.7.3.1 -ss Root -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 mycert.cer

Cependant, je ne sais pas comment placer ce fichier .cer sur les autres ordinateurs, et lorsque je l'installe sur mon ordinateur local IIS, chaque fois que je visite une page via https :, j'obtiens l'invite de sécurité (même après avoir installé le certificat). Quelqu'un a-t-il déjà rencontré ce problème ?

139voto

Roger Lipscombe Points 34344

Voici mes scripts pour faire cela :

Créer une autorité de certification

Créer un certificat auto-signé (-r), avec une clé privée exportable (-pe), en utilisant SHA1 (-r), pour la signature (-sky signature). La clé privée est écrite dans un fichier (-sv).

makecert -r -pe -n "CN=My Root Authority" -ss CA -sr CurrentUser ^
         -a sha1 -sky signature -cy authority -sv CA.pvk CA.cer

(^= permet à la ligne de commande batch d'envelopper la ligne)

Créer un certificat de serveur

Créer un certificat de serveur, avec une clé privée exportable (-pe), utilisant SHA1 (-a) pour l'échange de clés (-sky exchange). Il peut être utilisé comme un certificat de serveur SSL (-eku 1.3.6.1.5.5.7.3.1). Le certificat d'émission est dans un fichier (-ic), tout comme la clé (-iv). Utiliser un fournisseur de cryptage particulier (-sp, -sy).

makecert -pe -n "CN=fqdn.of.server" -a sha1 -sky Exchange ^
         -eku 1.3.6.1.5.5.7.3.1 -ic CA.cer -iv CA.pvk ^
         -sp "Microsoft RSA SChannel Cryptographic Provider" ^
         -sy 12 -sv server.pvk server.cer

pvk2pfx -pvk server.pvk -spc server.cer -pfx server.pfx

Vous utilisez ensuite le fichier .PFX dans votre application serveur (ou vous l'installez dans IIS). Notez que, par défaut, le fichier pvk2pfx n'applique pas de mot de passe au fichier PFX de sortie . Vous devez utiliser le -po pour cela.

Pour que toutes vos machines clientes lui fassent confiance, installez CA.cer dans leurs magasins de certificats (dans le magasin des autorités racine de confiance). Si vous êtes sur un domaine, vous pouvez utiliser la stratégie de groupe Windows pour effectuer cette opération de manière globale. Sinon, vous pouvez utiliser la certmgr.msc MMC snapin, ou le certutil l'utilitaire de ligne de commande :

certutil -user -addstore Root CA.cer

Pour installer le certificat de manière programmée dans IIS 6.0, consultez la page suivante cet article de la KB de Microsoft . Pour IIS 7.0, je ne sais pas.

12voto

masty Points 514

Vous devez ajouter -cy authority aux commutateurs lors de la création de l'autorité de certification, sinon certains magasins de certificats ne la considéreront pas comme une véritable autorité de certification.

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