Utilisation d'outils pour signer et tester du code

MakeCert, Cert2SPC et Signcode sont des outils que vous pouvez utiliser pour signer et tester du code. Ces outils sont disponibles dans le dossier \Program Files\IEAK\Reskit\Tools d'IEAK Resource Kit. Vous pouvez trouver d'autres ressources dans le kit de développement de Microsoft Internet Client.

MakeCert

Utilisez le programme de test MakeCert pour générer un certificat de test X.509. MakeCert réalise les tâches suivantes :

  1. Création d'une paire de clés publique/privée pour des signatures numériques et association de cette paire de clés à un nom de votre choix.
  2. Association de la paire de clés à un nom d'éditeur de votre choix.
  3. Création d'un certificat X.509, signé par la source clé de test ou celle que vous spécifiez, qui associe votre nom à la partie publique de la paire de clés. Le certificat est transmis à un fichier, à la banque de certificats d'un système ou aux deux.

La syntaxe de MakeCert est la suivante :

MakeCert [options de base| options étendues] FichiersortieDeCertification

MakeCert fournit des options de base et des options étendues. Les options de base sont celles le plus souvent utilisées pour créer un certificat. Les options étendues offrent plus de souplesse. Les options de MakeCert sont également divisées en trois groupes fonctionnels :

  1. Options applicables à la technologie du fichier SPC, de la clé privée et de la banque de certificats
  2. Options spécifiques à la technologie du fichier SPC et de la clé privée uniquement
  3. Options spécifiques à la technologie de la banque de certificats uniquement

Les options des groupes 2 et 3 ne peuvent être associées, à l'exception de l'option –ic.

Exemples de certificat 6.4 MakeCert créés à l'aide d'Internet Explorer 4.0

Les exemples suivants montrent comment créer des certificats avec MakeCert à l'aide des options d'Internet Explorer 4.0.

Exemple 1

Créez un certificat émis par la source de test par défaut. Enregistrez-le dans un fichier.

MakeCert maNouvelle.cer 

Exemple 2

Créez un certificat émis par la source de test par défaut. Enregistrez-le dans une banque de certificats.

MakeCert -ss maNouvelleBanque 

Exemple 3

Créez un certificat émis par la source de test par défaut. Créez un fichier .pvk et transmettez le certificat à une banque et à un fichier.

MakeCert -sv maNouvelle.pvk -ss maNouvelleBanque maNouvelle.cer 

Exemple 4

Créez un certificat émis par la source de test par défaut. Créez un conteneur de clés et transmettez le certificat à une banque et à un fichier.

MakeCert -sk maNouvelleCle -ss maNouvelleBanque maNouvelle.cer 

Exemple 5

Créez un certificat à l'aide de la source de test par défaut. Enregistrez le certificat dans une banque. Créez ensuite un autre certificat en utilisant le nouveau certificat. Enregistrez le deuxième certificat dans une autre banque.

MakeCert -sk maNouvelleCle -ss maNouvelleBanque
MakeCert -is maNouvelleBanque -ss autreBanque 

Exemple 6

Créez un certificat à l'aide de la source de test par défaut. Enregistrez le certificat dans ma banque. Créez ensuite un autre certificat en utilisant le nouveau certificat. Étant donné qu'il existe plusieurs certificats dans ma banque, identifiez le premier certificat à l'aide de son nom courant.

MakeCert -sk maNouvelleCle -n "CN=XXZZYY" -ss ma
MakeCert -is ma -in "XXZZYY" -ss autreBanque 

Exemple 7

Créez un certificat à l'aide de la source de test par défaut. Enregistrez le certificat dans ma banque et dans un fichier. Créez ensuite un autre certificat en utilisant le nouveau certificat maNouvelle. Étant donné qu'il existe plusieurs certificats dans ma banque, identifiez de manière unique le premier certificat à l'aide du nom de fichier du certificat.

MakeCert -sk maNouvelleCle -n "CN=XXZZYY" -ss ma maNouvelle.cer
MakeCert -is ma -ic maNouvelle.cer -ss autreBanque 

Exemple 8

Créez un certificat auto-signé intitulé maNouvelleSource à l'aide de la source de test par défaut. Utilisez ensuite SignCode avec le certificat pour signer un fichier.

MakeCert -sk maNouvelleSourceCle -r -ss maNouvelleSource
SignCode -s maNouvelleSource monControl.exe 

Exemple 9

Créez un certificat auto-signé intitulé maNouvelleSource à l'aide de la source de test par défaut. Enregistrez maNouvelleSource dans une banque de certificats système ca. Créez ensuite un certificat à partir de maNouvelleSource et signez du code avec le certificat.

Lorsque SignCode utilise un certificat placé dans une banque pour signature, il crée également une chaîne de certificats à partir du certificat de signature vers une source. Tous les certificats contenus dans la chaîne de certificats doivent faire partie de l'une des banques de certificats ma, ca, spc ou root. Dans ce cas, maNouvelleSource se trouve dans la banque de certificats ca.

MakeCert -sk maNouvelleSourceCle -r -ss ca maNouvelleSource.cer
MakeCert -is ca -ic maNouvelleSource.cer -ss monNouvelAbonnement 
SignCode -s monNouvelAbonnement monControl.exe

Cert2SPC

Après avoir généré un certificat, vous pouvez créer un fichier SPC (Software Publisher Certificate) en utilisant le programme Cert2SPC. Ce programme englobe plusieurs certificats X.509 dans un objet de données signées PKCS #7. Notez que ce programme est uniquement destiné à des tests. Un fichier SPC valide est obtenu auprès d'une autorité de certificat.

La syntaxe de Cert2SPC est la suivante :

Cert2SPC cert1.cer cert2.cer. . .certN.cer output.spc

où :

Voici un exemple :

Cert2SPC monCert.cer monCert.spc 

Ceci englobe un certificat X.509, monCert.cer, dans un fichier SPC PKCS #7 intitulé monCert.spc.

SignCode

L'étape finale consiste à signer effectivement un fichier en utilisant le programme SignCode. Ce programme effectue les tâches suivantes :

  1. Création d'un résumé cryptographique du fichier.
  2. Signature du résumé avec votre clé privée.
  3. Copie des certificats X.509 à partir du fichier SPC dans un nouvel objet de données signées PKCS #7. L'objet PKCS #7 contient les numéros de série et les émetteurs des certificats utilisés pour créer la signature, les certificats et les informations de résumé signé.
  4. Incorporation de l'objet dans le fichier.
  5. Ajout d'un horodateur au fichier (facultatif). Un horodateur doit toujours être ajouté lors de la signature d'un fichier. Toutefois, SignCode peut également ajouter un horodateur à un fichier précédemment signé, sujet à certaines restrictions (consultez les exemples qui suivent le tableau d'options).

La syntaxe de SignCode est la suivante :

SignCode [options] [Nomdefichier]

où :