How to create an app package signing certificate (Comment créer un certificat de signature de package d’application)

Important

MakeCert.exe est déconseillé. Pour obtenir des conseils actuels sur la création d’un certificat, consultez Créer un certificat pour la signature de package.

 

Découvrez comment utiliser MakeCert.exe et Pvk2Pfx.exe pour créer un certificat de signature de code de test afin de pouvoir signer vos packages d’application Windows.

Vous devez signer numériquement vos applications Windows empaquetées avant de les déployer. Si vous n’utilisez pas Microsoft Visual Studio 2012 pour créer et signer vos packages d’application, vous devez créer et gérer vos propres certificats de signature de code. Vous pouvez créer des certificats à l’aide deMakeCert.exe et dePvk2Pfx.exe à partir du Kit de pilotes Windows (WDK). Vous pouvez ensuite utiliser les certificats pour signer les packages d’application, afin qu’ils puissent être déployés localement à des fins de test.

Bon à savoir

Technologies

Prérequis

Instructions

Étape 1 : Déterminer le nom de l’éditeur du package

Pour que le certificat de signature que vous créez soit utilisable avec le package d’application que vous souhaitez signer, le nom d’objet du certificat de signature doit correspondre à l’attribut Publisher de l’élément Identity dans le AppxManifest.xml de cette application. Par exemple, supposons que le AppxManifest.xml contient :

  <Identity Name="Contoso.AssetTracker" 
    Version="1.0.0.0" 
    Publisher="CN=Contoso Software, O=Contoso Corporation, C=US"/>

Pour le paramètre publisherName que vous spécifiez avec l’utilitaire MakeCert à l’étape suivante, utilisez « CN=Contoso Software, O=Contoso Corporation, C=US ».

Notes

Cette chaîne de paramètre est spécifiée entre guillemets et respecte la casse et les espaces blancs.

 

La chaîne d’attribut Publisher définie pour l’élément Identity dans le AppxManifest.xml doit être identique à la chaîne que vous spécifiez avec le paramètre MakeCert /n pour le nom de l’objet du certificat. Copiez et collez la chaîne si possible.

Étape 2 : Créer une clé privée à l’aide de MakeCert.exe

Utilisez l’utilitaire MakeCert pour créer un certificat de test auto-signé et une clé privée :

MakeCert /n publisherName /r /h 0 /eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" /e 
expirationDate /sv MyKey.pvk MyKey.cer

Cette commande vous invite à fournir un mot de passe pour le fichier .pvk. Nous vous recommandons de choisir un mot de passe fort et de conserver votre clé privée dans un emplacement sécurisé.

Nous vous recommandons d’utiliser les paramètres suggérés dans l’exemple précédent pour les raisons suivantes :

/r

Crée un certificat racine auto-signé. Cela simplifie la gestion de votre certificat de test.

/h 0

Marque la contrainte de base pour le certificat en tant qu’entité de fin. Cela empêche l’utilisation du certificat en tant qu’autorité de certification qui peut émettre d’autres certificats.

/Eku

Définit les valeurs EKU (Enhanced Key Usage) pour le certificat.

Notes

Ne placez pas d’espace entre les deux valeurs délimitées par des virgules.

 

  • 1.3.6.1.5.5.7.3.3 indique que le certificat est valide pour la signature de code. Spécifiez toujours cette valeur pour limiter l’utilisation prévue pour le certificat.
  • 1.3.6.1.4.1.311.10.3.13 indique que le certificat respecte la signature de durée de vie. En règle générale, si une signature est horodatée, tant que le certificat était valide au moment où il a été horodaté, la signature reste valide même si le certificat expire. Cette référence EKU force la signature à expirer, que la signature soit horodatée ou non.

/E

Définit la date d’expiration du certificat. Fournissez une valeur pour le paramètre expirationDate au format mm/jj/aaaa. Nous vous recommandons de choisir une date d’expiration uniquement aussi longtemps que nécessaire à vos fins de test, généralement moins d’un an. Cette date d’expiration associée à la référence EKU de signature de durée de vie peut aider à limiter la fenêtre dans laquelle le certificat peut être compromis et mal utilisé.

Pour plus d’informations sur les autres options, consultez MakeCert.

Étape 3 : Créer un fichier d’échange d’informations personnelles (.pfx) à l’aide de Pvk2Pfx.exe

Utilisez l’utilitaire Pvk2Pfx pour convertir les fichiers .pvk et .cer créés par MakeCert en fichier .pfx que vous pouvez utiliser avec SignTool pour signer un package d’application :

Pvk2Pfx /pvk MyKey.pvk /pi pvkPassword /spc MyKey.cer /pfx MyKey.pfx [/po pfxPassword]

Les fichiers MyKey.pvk et MyKey.cer sont les mêmes fichiers que MakeCert.exe créés à l’étape précédente. En utilisant le paramètre /po facultatif, vous pouvez spécifier un autre mot de passe pour le .pfx résultant ; sinon, .pfx a le même mot de passe que MyKey.pvk.

Pour plus d’informations sur les autres options, consultez Pvk2Pfx.

Notes

Après avoir créé le fichier .pfx, vous pouvez utiliser le fichier avec SignTool pour signer un package d’application. Pour plus d’informations, consultez Comment signer un package d’application à l’aide de SignTool. Toutefois, le certificat n’est toujours pas approuvé par l’ordinateur local pour le déploiement de packages d’application tant que vous ne l’installez pas dans le magasin de certificats approuvés de l’ordinateur local. Vous pouvez utiliser Certutil.exe, qui est fourni avec Windows.

Pour installer des certificats avec WindowsCertutil.exe

  1. Exécutez Cmd.exe en tant qu’administrateur.

  2. Exécutez cette commande :

    Certutil -addStore TrustedPeople MyKey.cer
    

Nous vous recommandons de supprimer les certificats s’ils ne sont plus utilisés. À partir de la même invite de commandes administrateur, exécutez cette commande :

Certutil -delStore TrustedPeople certID

Le certID est le numéro de série du certificat. Exécutez cette commande pour déterminer le numéro de série du certificat :

Certutil -store TrustedPeople

Considérations relatives à la sécurité

En ajoutant un certificat aux magasins de certificats d’ordinateurs locaux, vous affectez l’approbation de certificat de tous les utilisateurs sur l’ordinateur. Nous vous recommandons d’installer tous les certificats de signature de code que vous souhaitez pour tester les packages d’application dans le magasin de certificats Personnes approuvé. Supprimez rapidement ces certificats lorsqu’ils ne sont plus nécessaires pour éviter qu’ils ne soient utilisés pour compromettre l’approbation du système.

Exemples

Créer un exemple de package d’application

Concepts

Meilleures pratiques en matière de signature de code

Comment signer un package d’application à l’aide de SignTool

Signature d’un package d’application