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 plus d’informations 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 de MakeCert.exe et Pvk2Pfx.exe à partir du Kit de pilotes Windows (WDK). Ensuite, vous pouvez 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 du sujet 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ètres est spécifiée entre guillemets et respecte à la fois la casse et l’espace blanc.

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 d’objet du certificat. Copiez et collez la chaîne dans la mesure du 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 comme une entité finale. Cela empêche l’utilisation du certificat en tant qu’autorité de certification (CA) susceptible d’émettre d’autres certificats.

/eku

Définit les valeurs de l’utilisation améliorée de la clé 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 du certificat.
  • 1.3.6.1.4.1.311.10.3.13 indique que le certificat respecte la signature de la 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 utilisation améliorée de la valeur force la signature à expirer, que la signature soit ou non horodatée.

/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 si nécessaire à des fins de test, en général moins d’un an. Cette date d’expiration, conjointement avec l’utilisation améliorée de la signature de durée de vie, permet de limiter la fenêtre dans laquelle le certificat peut être compromis et utilisé de façon inutilisée.

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

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

Utilisez l’utilitaire Pvk2Pfx pour convertir les fichiers. pvk et. CER créés dans un 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 que ceux MakeCert.exe créés à l’étape précédente. En utilisant le paramètre facultatif/po, vous pouvez spécifier un autre mot de passe pour le fichier. pfx qui en résulte. dans le cas contraire, le fichier. pfx a le même mot de passe que myKey. pvk.

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

Remarques

Une fois que vous avez 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’avez pas installé dans le magasin de certificats de confiance 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 la commande suivante :

Certutil -delStore TrustedPeople certID

La valeur 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 de l’ordinateur local, vous affectez le certificat de confiance de tous les utilisateurs sur l’ordinateur. Nous vous recommandons d’installer les certificats de signature de code que vous souhaitez pour tester des packages d’application dans le magasin de certificats personnes autorisées. Supprimez rapidement ces certificats lorsqu’ils ne sont plus nécessaires pour les empêcher d’être utilisés pour compromettre la confiance du système.

Exemples

Exemple de création de package d’application

Concepts

Meilleures pratiques pour la signature de code

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

Signature d’un package d’application