Guide d'utilisation de l'outil en ligne de commande SignTool
SignTool est le client en ligne de commande du service de signature de code à distance sslTrus, utilisé pour effectuer des opérations de signature de code dans un terminal ou des scripts automatisés.
Démarrage rapide
Voici un exemple de commande de signature de base que vous pouvez copier et modifier selon les commentaires avant de l'utiliser :
# 视情况而定,是否需要开启调试模式
#export DEBUG=1
# 使用环境变量配置 AK、SK 以及证书订阅号
export SIGNTOOL_ACCESS_KEY='' SIGNTOOL_ACCESS_SECRET='' SIGNTOOL_CERT_CODE=''
# 签名
./signtool sign \
--dry-run \
--access-key=$SIGNTOOL_ACCESS_KEY \
--access-secret=$SIGNTOOL_ACCESS_SECRET \
--cert-code=$SIGNTOOL_CERT_CODE \
--file=app-unsigned.exe \
--out=app.exe \
--sha1=false \
--sha2=true \
--timestamp-rfc3161 http://timestamp.acs.microsoft.com
Explication détaillée des commandes
Avant de commencer, vous devez préparer les trois informations suivantes :
Afficher l'aide
Utilisez les paramètres -h ou --help pour afficher l'aide complète de la commande.
./signtool sign -h
Analyse des paramètres clés
| Paramètre | Abréviation | Obligatoire | Description et exemple |
|---|---|---|---|
| --access-key | -k | Oui | Clé d’accès API. Peut également être définie via la variable d’environnement SIGNTOOL_ACCESS_KEY. |
| --access-secret | -s | Oui | Secret d’accès API. Peut également être défini via la variable d’environnement SIGNTOOL_ACCESS_SECRET. |
| --cert-code | -c | Oui | Numéro d’abonnement du service de signature de code à distance, utilisé pour désigner le certificat de signature et la facturation. |
| --file | -f | Oui | Chemin du fichier à signer. Exemple : -f “app.dll”. |
| --out | -o | Non | Chemin du fichier de sortie. Par défaut, ajoute .signed après le nom du fichier d’origine. Important : si le fichier existe déjà, l’opération échoue. |
| --override | Non | Indique s’il faut écraser le chemin du fichier à signer. Par défaut false. | |
| --sha1 | -1 | Non | Active la signature avec l’algorithme SHA1 (pour la compatibilité avec les anciens systèmes). |
| --sha2 | -2 | Non | Active la signature avec l’algorithme SHA256 (standard moderne, activation recommandée). |
| --nest | Non | Indique s’il faut effectuer une signature imbriquée. Lorsque le fichier possède déjà une signature, --nest=true (par défaut) conserve la signature d’origine et ajoute une nouvelle signature ; false supprime l’ancienne signature. Comparaison des effets ci-dessous : ![]() | |
| --timestamp | Non | URL du serveur d’horodatage utilisée pour la signature SHA1. Une chaîne vide "" permet de la désactiver. | |
| --timestamp-rfc3161 | Non | URL du serveur d’horodatage RFC 3161 utilisée pour la signature SHA256. Une chaîne vide "" permet de la désactiver. | |
| --desc | -n | Non | Description du programme. Ces informations sont intégrées à la signature et peuvent apparaître dans l’invite de sécurité système suivante : ![]() |
| --url | -u | Non | Lien officiel d’information sur le programme. |
| --verify | Non | Vérifie immédiatement après la signature si la signature du fichier est valide. | |
| --dry-run | Non | Mode d’essai. Dans ce mode, un certificat auto-signé est utilisé pour vérifier le processus de signature ; la clé d’accès et le numéro d’abonnement correspondants peuvent être saisis librement. |
À propos des paramètres booléens
Pour les paramètres acceptant des valeurs true/false (comme --sha1, --nest), il faut obligatoirement utiliser le format paramètre=valeur ; le format avec espace n’est pas pris en charge.
- Correct : --sha1=true --sha2=false
- Incorrect : --sha1 true --sha2 false

