web-dev-qa-db-fra.com

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 deux serveurs internes (tout est hors production).

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

En ce moment, j'ai quelque chose dans ce sens, en utilisant l'application makecert dans 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 ma machine locale IIS, chaque fois que je visite une page via https :, j'obtiens l'invite de sécurité (même après avoir avez installé le certificat). Quelqu'un a-t-il déjà fait cela?

55
John

Voici mes scripts pour ce faire:

Créer une autorité de certification

Créez 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

(^ = autoriser la ligne de commande par lots à boucler la ligne)

Créer un certificat de serveur

Créez un certificat de serveur, avec une clé privée exportable (-pe), en utilisant SHA1 (-a) pour l'échange de clés (-sky exchange). Il peut être utilisé comme certificat de serveur SSL (-eku 1.3.6.1.5.5.7.3.1). Le certificat émetteur se trouve dans un fichier (-ic), tout comme la clé (-iv). Utilisez un fournisseur de cryptographie 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 l'installez dans IIS). Notez que, par défaut, pvk2pfx n'applique pas de mot de passe au fichier PFX de sortie . Vous devez utiliser le -po changer pour ça.

Pour que toutes vos machines clientes lui fassent confiance, installez CA.cer dans leurs magasins de certificats (dans le magasin des autorités racines de confiance). Si vous êtes sur un domaine, vous pouvez utiliser la stratégie de groupe Windows pour le faire globalement. Sinon, vous pouvez utiliser le certmgr.msc MMC snapin, ou le certutil utilitaire de ligne de commande:

certutil -user -addstore Root CA.cer

Pour installer par programme le certificat dans IIS 6.0, consultez cet article Microsoft KB . Pour IIS 7.0, je ne sais pas .

139
Roger Lipscombe

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

12
masty