Leitfaden zur Verwendung des SignTool-Befehlszeilentools
SignTool ist der Befehlszeilen-Client des sslTrus-Remote-Codesignierungsdienstes, der zur Ausführung von Codesignierungsvorgängen im Terminal oder in Automatisierungsskripten verwendet wird.
Schnellstart
Das Folgende ist ein grundlegendes Beispiel für einen Signaturbefehl, den Sie kopieren, entsprechend den Kommentaren ändern und dann verwenden können:
# 视情况而定,是否需要开启调试模式
#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
Vor dem Start müssen Sie die folgenden drei Informationen vorbereiten:
Hilfe anzeigen
Mit dem Parameter -h oder --help können Sie die vollständige Befehls-Hilfe anzeigen.
./signtool sign -h
Kernparameter-Erklärung
| 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-Codesignierungsdienstes, 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. Standard: Hinzufügen von .signed nach dem ursprünglichen Dateinamen. Wichtig: Falls die Datei bereits existiert, schlägt der Vorgang fehl. |
| --override | Nein | Gibt an, ob der Pfad der zu signierenden Datei überschrieben werden soll. Standard: false. | |
| --sha1 | -1 | Nein | Aktiviert die SHA1-Algorithmus-Signierung (für Kompatibilität mit älteren Systemen). |
| --sha2 | -2 | Nein | Aktiviert die SHA256-Algorithmus-Signierung (moderner Standard, empfohlen). |
| --nest | Nein | Gibt an, ob eine verschachtelte Signatur erfolgt. Wenn die Datei bereits eine Signatur hat, behält --nest=true (Standard) die ursprüngliche Signatur bei und fügt eine neue hinzu; false löscht die alte Signatur. Effektvergleich: ![]() | |
| --timestamp | Nein | URL des Zeitstempelservers für SHA1-Signaturen. Setzen Sie einen leeren String „"“, um zu deaktivieren. | |
| --timestamp-rfc3161 | Nein | URL des RFC-3161-Zeitstempelservers für SHA256-Signaturen. Setzen Sie einen leeren String „"“, um zu deaktivieren. | |
| --desc | -n | Nein | Beschreibung des Programms. Diese Information wird in die Signatur eingebettet und kann in einer System-Sicherheitswarnung wie folgt angezeigt werden: ![]() |
| --url | -u | Nein | Offizieller Link mit Informationen zum Programm. |
| --verify | Nein | Verifiziert unmittelbar nach der Signierung, ob die Dateisignatur gültig ist. | |
| --dry-run | Nein | Testmodus. In diesem Modus wird der Signaturvorgang mit einem selbstsignierten Zertifikat verifiziert. Die zugehörigen Zugriffsschlüssel und Abonnementnummern können beliebig angegeben werden. |
Über boolesche Parameter
Für Parameter, die true/false 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

