Aller au contenu principal

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ètreAbréviationRequisDescription et exemple
--access-key-kOuiClé d'accès API. Peut également être définie via la variable d'environnement SIGNTOOL_ACCESS_KEY.
--access-secret-sOuiClé secrète d'accès API. Peut également être définie via la variable d'environnement SIGNTOOL_ACCESS_SECRET.
--cert-code-cOuiNuméro d'abonnement du service de signature de code à distance, utilisé pour spécifier le certificat de signature et la facturation.
--file-fOuiChemin du fichier à signer. Exemple : -f « app.dll ».
--out-oNonChemin 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.
--overrideNonIndique s'il faut remplacer le chemin du fichier à signer. Par défaut : false.
--sha1-1NonActive la signature avec l'algorithme SHA1 (pour la compatibilité avec les anciens systèmes).
--sha2-2NonActive la signature avec l'algorithme SHA256 (norme moderne, recommandée).
--nestNonIndique 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 :nest
--timestampNonURL du serveur d'horodatage utilisé pour la signature SHA1. Définir une chaîne vide « » pour désactiver.
--timestamp-rfc3161NonURL du serveur d'horodatage RFC 3161 utilisé pour la signature SHA256. Définir une chaîne vide « » pour désactiver.
--desc-nNonDescription 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 :desc
--url-uNonLien vers les informations officielles du programme.
--verifyNonVérifie immédiatement la validité de la signature du fichier après la signature.
--dry-runNonMode 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