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.