Réponse actualisée
Si vous utilisez les versions suivantes de Windows ou des versions ultérieures : Windows Server 2012, Windows Server 2012 R2, ou Windows 8.1, alors MakeCert est maintenant déprécié et Microsoft recommande d'utiliser la cmdlet PowerShell Nouveau certificat auto-signé .
Si vous utilisez une version plus ancienne, comme Windows 7, vous devrez vous en tenir à MakeCert ou à une autre solution. Certaines personnes suggérer le site Module Powershell d'infrastructure à clé publique (PSPKI) .
Réponse originale
Bien que vous puissiez créer un certificat de signature de code auto-signé (SPC - Certificat d'éditeur de logiciels ) en une seule fois, je préfère procéder comme suit :
Création d'une autorité de certification (CA) auto-signée
makecert -r -pe -n "CN=My CA" -ss CA -sr CurrentUser ^
-a sha256 -cy authority -sky signature -sv MyCA.pvk MyCA.cer
(^ = permet à la ligne de commande batch d'envelopper la ligne)
Ceci crée un certificat auto-signé (-r), avec une clé privée exportable (-pe). Il est nommé "My CA", et doit être placé dans le magasin CA pour l'utilisateur actuel. Nous utilisons l'option SHA-256 algorithme. La clé est destinée à la signature (-sky).
La clé privée doit être stockée dans le fichier MyCA.pvk, et le certificat dans le fichier MyCA.cer.
Importation du certificat de l'AC
Comme il est inutile d'avoir un certificat d'autorité de certification si vous ne lui faites pas confiance, vous devez l'importer dans le magasin de certificats de Windows. Vous pouvez consulter le site peut utiliser le snapin MMC Certificats, mais à partir de la ligne de commande :
certutil -user -addstore Root MyCA.cer
Création d'un certificat de signature de code (SPC)
makecert -pe -n "CN=My SPC" -a sha256 -cy end ^
-sky signature ^
-ic MyCA.cer -iv MyCA.pvk ^
-sv MySPC.pvk MySPC.cer
C'est à peu près la même chose que ci-dessus, mais nous fournissons une clé et un certificat d'émetteur (les commutateurs -ic et -iv).
Nous voudrons également convertir le certificat et la clé en un fichier PFX :
pvk2pfx -pvk MySPC.pvk -spc MySPC.cer -pfx MySPC.pfx
Si vous utilisez un mot de passe, veuillez utiliser le code suivant
pvk2pfx -pvk MySPC.pvk -spc MySPC.cer -pfx MySPC.pfx -po fess
Si vous voulez protéger le fichier PFX, ajoutez le commutateur -po, sinon PVK2PFX crée un fichier PFX sans phrase de passe.
Utilisation du certificat pour la signature du code
signtool sign /v /f MySPC.pfx ^
/t http://timestamp.url MyExecutable.exe
( Voir pourquoi les timestamps peuvent avoir de l'importance )
Si vous importez le fichier PFX dans le magasin de certificats (vous pouvez utiliser PVKIMPRT ou le snapin MMC), vous pouvez signer le code comme suit :
signtool sign /v /n "Me" /s SPC ^
/t http://timestamp.url MyExecutable.exe
Quelques URL d'horodatage possibles pour signtool /t
sont :
http://timestamp.verisign.com/scripts/timstamp.dll
http://timestamp.globalsign.com/scripts/timstamp.dll
http://timestamp.comodoca.com/authenticode
http://timestamp.digicert.com
Documentation complète de Microsoft
Téléchargements
Pour ceux qui ne sont pas des développeurs .NET, vous aurez besoin d'une copie du SDK Windows et du cadre .NET. Un lien actuel est disponible ici : [SDK & .NET][5] (qui installe makecert dans le répertoire `NET'). C:\Program Fichiers \Microsoft SDKs \Windows\v7.1 `). Votre kilométrage peut varier.
MakeCert est disponible à partir de l'invite de commande de Visual Studio. Visual Studio 2015 en dispose, et il peut être lancé depuis le menu Démarrer de Windows 7 sous "Developer Command Prompt for VS 2015" ou "VS2015 x64 Native Tools Command Prompt" (probablement tous dans le même dossier).
2 votes
Cochez cette réponse : stackoverflow.com/q/53771022/623913