SignTool Sign |
Outil de signature : Signature |
---|---|
SDK Windows 10 |
Syntaxe
signtool sign [options] [file_name | ...] |
Paramètres
Paramètre | Description |
---|---|
/a | Ce paramètre permet d'indiquer la sélection automatiquement du meilleur certificat de signature. Sign Tool trouvera tous les certificats valides satisfaisant à toutes les conditions spécifiées et sélectionnera celui étant valide le plus longtemps. Si cette option n'est pas présente, Sign Tool s'attend à ne trouver qu'un seul certificat de signature valide. |
/ac file | Ce paramètre permet d'ajouter un certificat supplémentaire du fichier au bloc de signature. |
/as | Ce paramètre permet d'apposer cette signature. Si aucune signature principale n'est présente, cette signature devient la signature principale à la place. |
/c CertTemplateName | Ce paramètre permet d'indiquer le nom du modèle de certificat (une extension Microsoft) pour le certificat de signature. |
/csp CSPName | Ce paramètre permet d'indiquer le fournisseur de services cryptographiques (CSP) contenant le conteneur de clef privée. |
/d Desc | Ce paramètre permet d'indiquer une description du contenu signé. |
/dg Path | Ce paramètre permet de générer le résumé à signer et les fichiers PKCS7 non signés. Le résumé de sortie et les fichiers PKCS7 seront : Path\FileName.dig et Path\FileName.p7u. Pour générer un fichier XML supplémentaire, voir /dxml. |
/di Path | Ce paramètre permet de créer la signature en ingérant le résumé signé dans le fichier PKCS7 non signé. Les fichiers Digest signés et PKCS7 non signés en entrée doivent être : Path\FileName.dig.signed et Path\FileName.p7u. |
/dlib DLL | Ce paramètre permet d'indiquer la DLL implémentant la fonction AuthenticodeDigestSign avec laquelle signer le résumé. Cette option équivaut à utiliser SignTool séparément avec les commutateurs /dg, /ds et /di, sauf que cette option appelle les trois comme une seule opération atomique. |
/dmdf Filename | Ce paramètre permet d'indiquer, lorsqu'il est utilisé avec l'option /dg, de transmettre le contenu du fichier à la fonction AuthenticodeDigestSign sans modification. |
/ds | Ce paramètre permet de signer uniquement le résumé. Le fichier d'entrée doit être le résumé généré par l'option /dg. Le fichier de sortie sera : File.signed. |
/du URL | Ce paramètre permet d'indiquer une URL (Uniform Resource Locator) pour la description développée du contenu signé. |
/dxml | Ce paramètre permet d'indiquer, lorsqu'il est utilisé avec l'option /dg, produit un fichier XML. Le fichier de sortie sera : Path\FileName.dig.xml. |
/f SignCertFile | Ce paramètre permet d'indiquer le certificat de signature dans un fichier. Si le fichier est au format PFX (Personal Information Exchange) et protégé par un mot de passe, utilisez l'option /p pour spécifier le mot de passe. Si le fichier ne contient pas de clefs privées, utilisez les options /csp et /kc pour spécifier le CSP et le nom du conteneur de clef privée. |
/fd alg | Ce paramètre permet d'indiquer l'algorithme de résumé de fichier à utiliser pour créer des signatures de fichier. Remarque : Une erreur est générée si le commutateur /fd n'est pas fourni lors de la signature. |
/fd certHash | Ce paramètre permet d'indiquer la chaîne de caractères certHash sera par défaut l'algorithme utilisé sur le certificat de signature. Remarque : Une erreur est générée si le commutateur /fd n'est pas fourni lors de la signature. |
/i IssuerName | Ce paramètre permet d'indiquer le nom de l'émetteur du certificat de signature. Cette valeur peut être une sous-chaîne du nom complet de l'émetteur. |
/kc PrivKeyContainerName | Ce paramètre permet d'indiquer le nom du conteneur de clef privée. |
/n SubjectName | Ce paramètre permet d'indiquer le nom du sujet du certificat de signature. Cette valeur peut être une sous-chaîne du nom de sujet complet. |
/nph | Ce paramètre permet d'indiquer, s'il est pris en charge, de supprimer les hachages de page pour les fichiers exécutables. La valeur par défaut est déterminée par la variable d'environnement SIGNTOOL_PAGE_HASHES et par la version de wintrust.dll. Cette option est ignorée pour les fichiers non-PE. |
/p Password | Ce paramètre permet d'indiquer le mot de passe à utiliser lors de l'ouverture d'un fichier «.pfx». (Utilisez l'option /f pour spécifier un fichier «.pfx».) |
/p7 Path | Ce paramètre permet d'indiquer qu'un fichier PKCS (Public Key Cryptography Standards) #7 est produit pour chaque fichier de contenu spécifié. Les fichiers PKCS #7 sont nommés path\filename.p7. |
/p7ce Value | Ce paramètre permet d'indiquer les options pour le contenu PKCS #7 signé. Définissez la valeur sur "Embedded" pour intégrer le contenu signé dans le fichier PKCS #7, ou sur "DetachedSignedData" pour produire la partie de données signées d'un fichier PKCS #7 détaché. Si l'option /p7ce n'est pas utilisée, le contenu signé est intégré par défaut. |
/p7co OID | Ce paramètre permet d'indiquer l'identificateur d'objet (OID) identifiant le contenu PKCS #7 signé. |
/ph | Ce paramètre permet d'indiquer, si pris en charge, de générer des hachages de page pour les fichiers exécutables. |
/r RootSubjectName | Ce paramètre permet d'indiquer le nom du sujet du certificat racine auquel le certificat de signature doit être lié. Cette valeur peut être une sous-chaîne du nom de sujet complet du certificat racine. |
/s StoreName | Ce paramètre permet d'indiquer le magasin à ouvrir lors de la recherche du certificat. Si cette option n'est pas précisée, la boutique Mon magasin s'ouvre. |
/sha1 Hash | Ce paramètre permet d'indiquer le hachage SHA1 du certificat de signature. Le hachage SHA1 est généralement spécifié lorsque plusieurs certificats satisfont aux critères spécifiés par les commutateurs restants. |
/sm | Ce paramètre permet d'indiquer qu'un magasin de machines, au lieu d'un magasin d'utilisateurs, est utilisé. |
/t URL | Ce paramètre permet d'indiquer l'URL du serveur d'horodatage. Si cette option (ou /tr) n'est pas présente, le fichier signé ne sera pas horodaté. Un avertissement est généré si l'horodatage échoue. Cette option ne peut pas être utilisée avec l'option /tr. |
/td alg | Ce paramètre permet d'indiquer, utilisé avec l'option /tr, de demander un algorithme de résumé utilisé par le serveur d'horodatage RFC 3161. Remarque : Une erreur est générée si /td n'est pas fourni lors de l'horodatage. |
/tr URL | Ce paramètre permet d'indiquer l'URL du serveur d'horodatage RFC 3161. Si cette option (ou /t) n'est pas présente, le fichier signé ne sera pas horodaté. Un avertissement est généré si l'horodatage échoue. Cette option ne peut pas être utilisée avec l'option /t. |
/u Usage | Ce paramètre permet d'indiquer l'utilisation de clef améliorée (EKU) devant être présente dans le certificat de signature. La valeur d'utilisation peut être spécifiée par un OID ou une chaîne de caractères. L'utilisation par défaut est "Signature de code". |
/uw | Ce paramètre permet d'indiquer l'utilisation de "Vérification des composantes système Windows". |
Description
Cette commande permet de signer numériquement les fichiers. Les signatures numériques protègent les fichiers contre la falsification et permettent aux utilisateurs de vérifier le signataire sur la base d'un certificat de signature.
Exemples
L'exemple suivante signe automatiquement un fichier en utilisant le meilleur certificat :
signtool sign /a /fd SHA256 MonFichier.exe |
Si vous avez extraire une empreinte (Thumbprint) à l'aide d'une commande Get-PfxCertificate de PowerShell, vous pouvez aussi l'indiquer de la manière suivante à l'aide du paramètre /sha1 :
signtool sign /f MonCertificat.pfx /d "Description de l'application" /p motdepasse /v /sha1 07A7C8D71C77277F2AFA657DF22C07A7A774B8C7 /t "http://timestamp.sectigo.com" MonApplicationSetup.msi |
L'exemple suivante signe numériquement un fichier à l'aide d'un certificat entreposé dans un fichier PFX protégé par mot de passe :
signtool sign /f MonCert.pfx /p MonMotDePasse /fd SHA256 MonFichier.exe |
L'exemple suivant permet de certifier un fichier d'installation Setup.msi avec un hachage SHA256 avec SectiGo :
signtool sign /f moncertificat.pfx /d "Programme d'installation" /p motdepasse /v /fd SHA256 /t "http://timestamp.sectigo.com" Setup.msi |
L'exemple suivant permet de certifier un fichier d'installation Setup.msi avec un hachage SHA256 avec DigiCert :
signtool sign /f moncertificat.pfx /d "Programme d'installation" /p motdepasse /v /fd SHA256 /t "http://timestamp.digicert.com" Setup.msi |
on obtiendra un résultat ressemblant à ceci :
The following certificate was selected: Issued to: GLADIR Issued by: Sectigo Public Code Signing CA R36 Expires: Sat Dec 13 18:59:59 2025 SHA1 hash: 07A7C8D71C77277F2AFA657DF22C07A7A774B8C7 Done Adding Additional Store Successfully signed: Setup.msi Number of files successfully Signed: 1 Number of warnings: 0 Number of errors: 0 |
Vous pouvez également inclure lors de la génération de votre exécutable d'installation MSI dans Visual Studio, une commande SignTool avec des paramètres personnalisés dans le champ «Post-build Event Command Line» :