SignTool |
Outil de signature |
---|---|
SDK Windows 10 |
Syntaxe
signtool [command] [options] [file_name | ...] |
Paramètres
Paramètre | Description | |
---|---|---|
command | Ce paramètre permet d'indiquer l'une des cinq commandes (catdb, sign, remove, Timestamp ou Verify) spécifiant une opération à effectuer sur un fichier. Voici la description de chacune d'elle : | |
Commande | Description | |
Catdb | Cette commande permet d'ajouter ou de supprimer un fichier de catalogue à une base de données de catalogue. Les bases de données de catalogue sont utilisées pour la recherche automatique des fichiers de catalogue et sont identifiées par GUID. | |
remove | Cette commande permet de supprimer la ou les signatures intégrées ou réduisez la taille d'un fichier signé intégré. | |
Sign | 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. | |
Timestamp | Cette commande permet d'indiquer un fichier d'horodatage. | |
Verify | Cette commande permet de vérifier la signature numérique des fichiers en déterminant si le certificat de signature a été émis par une autorité de confiance, si le certificat de signature a été révoqué et, éventuellement, si le certificat de signature est valide pour une stratégie spécifique. | |
options | Ce paramètre permet d'indiquer une option modifiant une commande. En plus des options globales /q et /v, chaque commande prend en charge un ensemble unique d'options. | |
Option | Description | |
/q | Cette option permet d'indiquer qu'il ne faut pas afficher aucune sortie si la commande s'exécute avec succès et affiche une sortie minimale si la commande échoue. | |
/v | Cette option permet d'afficher une sortie détaillée, que la commande s'exécute avec succès ou échoue, et affiche des messages d'avertissement. | |
/debug | Cette option permet d'afficher les informations de débogage. | |
file_name | Ce paramètre permet d'indiquer un chemin d'accès à un fichier à signer. |
Description
Cette commande permet de signer numériquement les fichiers, vérifie les signatures dans les fichiers et horodate les fichiers.
Valeur de retour
Le Sign Tool renvoie l'un des codes de sortie suivants lorsqu'il se termine :
Code de sortie | Description |
---|---|
0 | L'exécution a réussi. |
1 | L'exécution a échoué. |
2 | L'exécution s'est terminée avec des avertissements. |
Remarques
- Les builds Windows 10 SDK, Windows 10 HLK, Windows 10 WDK et Windows 10 ADK 20236 et versions ultérieures nécessitent de spécifier l'algorithme de résumé. La commande de signature SignTool nécessite que l'algorithme de résumé de fichier /fd et l'option d'algorithme de résumé d'horodatage /td soient spécifiés lors de la signature et de l'horodatage, respectivement. Un avertissement (code d'erreur 0, initialement) sera émis si /fd n'est pas spécifié lors de la signature et si /td n'est pas spécifié lors de l'horodatage. Dans les versions ultérieures de SignTool, l'avertissement deviendra une erreur. SHA256 est recommandé et considéré comme plus sûr que SHA1 par l'industrie.
- L'emplacement de cette commande peut variés énormément, voici les emplacements les plus communs :
Emplacement | Description |
---|---|
C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64 | Version 10.0.16299.0 en 64 bits |
C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x86 | Version 10.0.16299.0 en 32 bits |
C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x86 | Version 10.0.22000.0 en 32 bits |
C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64 | Version 10.0.22000.0 en 64 bits |
... | ... |
Exemples
L'exemple suivante permet d'ajouter le fichier de catalogue MonFichierCatalog.cat au composante système et à la base de données de pilotes. L'option /u génère un nom unique si nécessaire pour empêcher le remplacement d'un fichier de catalogue existant nommé MonFichierCatalog.cat :
signtool catdb /v /u MonFichierCatalog.cat |
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 :
signtool sign /f moncertificat.pfx /d "Programme d'installation" /p motdepasse /v /fd SHA256 /t "http://timestamp.sectigo.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 |
L'exemple suivante vérifie qu'un fichier a été signé :
signtool verify Setup.msi |
on obtiendra un résultat comme ceci si le certificat à un problème :
File: Setup.msi Index Algorithm Timestamp ======================================== SignTool Error: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. Number of errors: 1 |
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» :