SignTool-Befehlszeilen-Tool – Benutzerhandbuch
SignTool ist der Befehlszeilen-Client des Remote-Codesignaturdienstes von sslTrus. Er wird verwendet, um Codesignaturvorgänge im Terminal oder in automatisierten Skripten auszuführen.
Schnellstart
Das folgende Beispiel zeigt einen grundlegenden Signaturbefehl. Sie können ihn kopieren und gemäß den Kommentaren anpassen:
# 视情况而定,是否需要开启调试模式
#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
Befehlsdetails
Bevor Sie beginnen, müssen Sie die folgenden drei Informationen vorbereiten:
Hilfe anzeigen
Mit dem Parameter -h oder --help können Sie die vollständige Befehlshilfe anzeigen.
./signtool sign -h
Analyse der Kernparameter
| Parameter | Abkürzung | Erforderlich | Beschreibung und Beispiel |
|---|---|---|---|
| --access-key | -k | Ja | API-Zugriffsschlüssel. Kann auch über die Umgebungsvariable SIGNTOOL_ACCESS_KEY festgelegt werden. |
| --access-secret | -s | Ja | API-Zugriffsschlüssel. Kann auch über die Umgebungsvariable SIGNTOOL_ACCESS_SECRET festgelegt werden. |
| --cert-code | -c | Ja | Abonnementnummer des Remote-Codesignaturdienstes, dient zur Angabe des Signaturzertifikats und der Abrechnung. |
| --file | -f | Ja | Pfad der zu signierenden Datei. Beispiel: -f "app.dll". |
| --out | -o | Nein | Pfad der Ausgabedatei. Standardmäßig wird .signed an den ursprünglichen Dateinamen angehängt. Wichtig: Wenn die Datei bereits existiert, schlägt der Vorgang fehl. |
| --override | Nein | Gibt an, ob der Pfad der zu signierenden Datei überschrieben werden soll. Standardmäßig false. | |
| --sha1 | -1 | Nein | Aktiviert die Signatur mit dem SHA1-Algorithmus (für die Kompatibilität mit alten Systemen). |
| --sha2 | -2 | Nein | Aktiviert die Signatur mit dem SHA256-Algorithmus (moderner Standard, empfohlen). |
| --nest | Nein | Gibt an, ob verschachtelt signiert werden soll. Wenn die Datei bereits signiert ist, behält --nest=true (Standard) die ursprüngliche Signatur bei und fügt eine neue hinzu; false löscht die alte Signatur. Der Effektvergleich sieht wie folgt aus: ![]() | |
| --timestamp | Nein | URL des Zeitstempelservers für die SHA1-Signatur. Durch Setzen auf eine leere Zeichenfolge "" deaktivierbar. | |
| --timestamp-rfc3161 | Nein | URL des RFC-3161-Zeitstempelservers für die SHA256-Signatur. Durch Setzen auf eine leere Zeichenfolge "" deaktivierbar. | |
| --desc | -n | Nein | Programmbeschreibung. Diese Information wird in die Signatur eingebettet und kann in folgendem Systemsicherheitshinweis angezeigt werden: ![]() |
| --url | -u | Nein | Offizieller Informationslink des Programms. |
| --verify | Nein | Überprüft unmittelbar nach der Signatur, ob die Dateisignatur gültig ist. | |
| --dry-run | Nein | Testmodus. In diesem Modus wird der Signaturablauf mit einem selbstsignierten Zertifikat überprüft; die entsprechenden Zugriffsschlüssel und die Abonnementnummer können beliebig ausgefüllt werden. |
Informationen zu booleschen Parametern
Bei Parametern, die true/false-Werte akzeptieren (z. B. --sha1, --nest), muss das Format Parameter=Wert verwendet werden; eine Trennung durch Leerzeichen wird nicht unterstützt.
- Richtig: --sha1=true --sha2=false
- Falsch: --sha1 true --sha2 false

