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 exécuter des opérations de signature de code dans un terminal ou des scripts d'automatisation.
Démarrage rapide
Voici un exemple de commande de signature de base que vous pouvez copier et modifier en fonction des commentaires :
# 视情况而定,是否需要开启调试模式
#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
Détail des commandes
Avant de commencer, vous devez préparer les trois éléments suivants :
Afficher l'aide
Utilisez le paramètre -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 | Requis | 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 | Clé secrète d'accès API. Peut également être définie 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 spécifier 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, .signed est ajouté au nom du fichier d'origine. Important : si le fichier existe déjà, l'opération échouera. |
| --override | Non | Indique s'il faut remplacer 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 (norme moderne, 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 la nouvelle signature ; false supprime l'ancienne signature. Comparaison des effets :![]() | |
| --timestamp | Non | URL du serveur d'horodatage utilisé pour la signature SHA1. Définir une chaîne vide « » pour désactiver. | |
| --timestamp-rfc3161 | Non | URL du serveur d'horodatage RFC 3161 utilisé pour la signature SHA256. Définir une chaîne vide « » pour désactiver. | |
| --desc | -n | Non | Description du programme. Cette information est intégrée à la signature et peut être affichée dans les alertes de sécurité système comme ci-dessous :![]() |
| --url | -u | Non | Lien vers les informations officielles du programme. |
| --verify | Non | Vérifie immédiatement la validité de la signature du fichier après la signature. | |
| --dry-run | Non | Mode d'essai. Dans ce mode, un certificat auto-signé est utilisé pour valider le processus de signature ; la clé d'accès et le numéro d'abonnement correspondants peuvent être remplis arbitrairement. |
À propos des paramètres booléens
Pour les paramètres acceptant les valeurs true/false (tels que --sha1, --nest), le format paramètre=valeur doit être utilisé ; la séparation par espace n'est pas prise en charge.
- Correct : --sha1=true --sha2=false
- Incorrect : --sha1 true --sha2 false

