Share via


SignTool.exe (Signaturtool)

Aktualisiert: April 2011

Signaturtool ist ein Befehlszeilentool, das Dateien digital signiert, Signaturen in Dateien überprüft und Dateien Zeitstempel hinzufügt.

Dieses Tool wird automatisch mit Visual Studio und mit dem Windows SDK installiert. Um das Tool auszuführen, empfiehlt es sich, dass Sie die Visual Studio-Eingabeaufforderung oder Windows SDK-Eingabeaufforderung (CMD-Shell) verwenden. Mit diesen Hilfsprogrammen können Sie das Tool problemlos ausführen, ohne in den Installationsordner zu navigieren. Weitere Informationen finden Sie unter Visual Studio- und Windows SDK-Eingabeaufforderungen.

  • Wenn Visual Studio auf dem Computer installiert ist: Klicken Sie auf der Taskleiste auf Start, All Programs, Visual Studio und Visual Studio Tools, und klicken Sie dann auf Visual Studio Command Prompt.

    – oder –

    Wenn das Windows SDK auf Ihrem Computer installiert ist: Klicken Sie auf der Taskleiste auf Start, All Programs, klicken Sie auf den Ordner für das Windows SDK, und klicken anschließend auf Command Prompt (oder CMD Shell).

  • Geben Sie an der Eingabeaufforderung Folgendes ein:

        signtool [command] [options] [file_name | ...]

Parameter

Argument

Beschreibungen

command

Einer von vier Befehle (catdb, sign, Timestamp oder Verify), der einen Vorgang angibt, der für eine Datei ausgeführt wird. Eine Beschreibung jedes Befehls finden Sie in der folgenden Tabelle.

options

Eine Option, die einen Befehl ändert. Zusätzlich zu den globalen Optionen /q und /v unterstützt jeder Befehl einen eindeutigen Satz von Optionen.

file_name

Der Pfad zu einer zu signierenden Datei.

Die folgenden Befehle werden vom Signaturtool unterstützt. Jeder Befehl wird mit einem unterschiedlichem Satz von Optionen verwendet, die in ihren jeweiligen Abschnitten aufgeführt sind.

Befehl

Beschreibungen

catdb

Fügt einer Katalogdatenbank eine Katalogdatei hinzu oder entfernt sie daraus. Katalogdatenbanken werden für die automatische Suche von Katalogdateien verwendet und durch die GUID gekennzeichnet. Eine Liste der durch den catdb-Befehl unterstützten Optionen finden Sie unter catdb-Befehlsoptionen.

sign

Signiert Dateien digital. Digitale Signaturen schützen Dateien vor Manipulationen und ermöglichen es Benutzern, den Signaturgeber anhand eines Signaturzertifikats zu überprüfen. Eine Liste der durch den sign-Befehl unterstützten Optionen finden Sie unter sign-Befehlsoptionen.

Timestamp

Fügt Dateien Timestamps hinzu. Eine Liste der durch den TimeStamp-Befehl unterstützten Optionen finden Sie unter Timestamp-Befehlsoptionen.

Verify

Überprüft die digitale Signatur von Dateien, indem ermittelt wird, ob das Signaturzertifikat von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt wurde, ob das Signaturzertifikat widerrufen wurde, und optional ob das Signaturzertifikat für eine bestimmte Richtlinie gültig ist. Eine Liste der durch den Verify-Befehl unterstützten Optionen finden Sie unter Überprüfen der Befehlsoptionen.

Die folgenden Optionen gelten für alle Signaturtoolbefehle.

Globale Option

Beschreibungen

/q

Keine Ausgabe bei erfolgreicher Ausführung und minimale Ausgabe bei fehlgeschlagener Ausführung.

/v

Ausführliche Ausgabe bei erfolgreicher Ausführung, fehlgeschlagener Ausführung und bei Warnmeldungen.

catdb-Befehlsoptionen

In der folgenden Tabelle sind die Optionen aufgeführt, die mit dem catdb-Befehl verwendet werden können.

Catdb-Option

Beschreibungen

/d

Gibt an, dass die Standardkatalogdatenbank aktualisiert wird. Wenn weder die Option /d noch die Option /g verwendet wird, aktualisiert das Signaturtool die Systemkomponente und die Treiberdatenbank.

/g GUID

Gibt an, dass die durch die GUID (Globally Unique Identifier) bezeichnete Katalogdatenbank aktualisiert wird.

/r

Entfernt die angegebenen Kataloge aus der Katalogdatenbank. Wenn diese Option nicht angegeben wird, fügt das Signaturtool der Katalogdatenbank die angegebenen Kataloge hinzu.

/u

Gibt an, dass ein eindeutiger Name für die hinzugefügten Katalogdateien automatisch generiert wird. Gegebenenfalls werden die Katalogdateien umbenannt, um Namenskonflikte mit vorhandenen Katalogdateien zu verhindern. Wird diese Option nicht angegeben, überschreibt das Signaturtool jeden vorhandenen, gleichnamigen Katalog mit dem hinzuzufügenden Katalog.

sign-Befehlsoptionen

In der folgenden Tabelle sind die Optionen aufgeführt, die mit dem sign-Befehl verwendet werden können.

Sign-Befehlsoption

Beschreibungen

/a

Wählt automatisch das beste Signaturzertifikat aus. Signaturtool findet alle gültigen Zertifikaten, die alle angegebenen Bedingungen erfüllen, und wählt das aus, das die längste Zeit gültig ist. Wenn diese Option nicht vorhanden ist, erwartet das Signaturtool nur ein gültiges Signaturzertifikat.

/ac Datei

Fügt dem Signaturblock ein zusätzliches Zertifikat aus file hinzu.

/c Zertifikatsvorlagenname

Gibt den Zertifikatsvorlagennamen (eine Microsoft-Erweiterung) für das Signaturzertifikat an.

/csp CSPName

Gibt den Kryptografiedienstanbieter (CSP) an, der den private Schlüsselcontainer enthält.

/d Beschr

Gibt eine Beschreibung des signierten Inhalts an.

/du URL

Gibt eine Uniform Resource Locator (URL) für die erweiterte Beschreibung des Inhalts mit Vorzeichen an.

/f SignZertDatei

Gibt das Signaturzertifikat in einer Datei an. Wenn es sich um eine PFX-Datei (Personal Information Exchange) handelt, die mit einem Kennwort gesichert ist, verwenden Sie zur Angabe des Kennworts die Option /p. Wenn die Datei keine privaten Schlüssel enthält, verwenden Sie die Optionen /csp und /k, um den CSP-Namen und den Namen des privaten Schlüsselcontainers anzugeben.

/fd

Gibt den Datei-Digest-Algorithmus an, der zum Erstellen von Dateisignaturen verwendet wird. Der Standard ist SHA1.

/i Ausstellername

Gibt den Namen des Ausstellers des Signaturzertifikats an. Dieser Wert kann eine Teilzeichenfolge des gesamten Ausstellernamens sein.

/kc PrivatschlüsselcontainerName

Gibt den Namen des privaten Schlüsselcontainers an.

/n Themenname

Gibt den Namen des Betreffs des Signaturzertifikats an. Dieser Wert kann eine Teilzeichenfolge des gesamten Betreffnamens sein.

/nph

Wenn unterstützt, werden Seitenhashs für ausführbare Dateien unterdrückt. Der Standardwert wird von der SIGNTOOL_PAGE_HASHES-Umgebungsvariable und von der wintrust.dll-Version bestimmt.

/p Kennwort

Gibt das beim Öffnen einer PFX-Datei zu verwendende Kennwort an. (Verwenden Sie die Option /f, um eine PFX-Datei anzugeben.)

/ph

Wenn unterstützt, werden Seitenhashs für ausführbare Dateien generiert.

/r RootSubjectName

Gibt den Namen des Betreffs des Stammzertifikats an, mit dem das Signaturzertifikat verkettet werden muss. Dieser Wert kann eine Teilzeichenfolge des gesamten Betreffnamens des Stammzertifikats sein.

/s Speichername

Gibt beim Suchen nach dem Zertifikat den zu öffnenden Speicher an. Wird diese Option nicht angegeben, wird My Speicher geöffnet.

/sha1 Hash

Gibt den SHA1-Hash des Signaturzertifikats an.

/sm

Gibt an, dass statt eines Benutzerspeichers ein Computerspeicher verwendet wird.

/t URL

Gibt die URL des Timestampservers an. Wenn diese Option (oder /tr) nicht vorhanden ist, wird der signierten Datei kein Timestamp hinzugefügt. Schlägt das Hinzufügen des Timestamps fehl, wird eine Warnung generiert. Diese Option kann nicht mit der Option /tr verwendet werden.

/td alg

Wird mit der /tr-Option verwendet, um einen Digest-Algorithmus anzufordern, der vom RFC 3161-Timestampserver verwendet wird.

/tr URL

Gibt die URL des RFC 3161-Timestampservers an. Wenn diese Option (oder /t) nicht vorhanden ist, wird der signierten Datei kein Timestamp hinzugefügt. Schlägt das Hinzufügen des Timestamps fehl, wird eine Warnung generiert. Diese Option kann nicht mit der Option /t verwendet werden.

/u Verwendung

Gibt die verbesserte Schlüsselverwendung (EKU) an, die im Signaturzertifikat vorhanden sein muss. Der Verwendungswert kann durch OID oder eine Zeichenfolge angegeben werden. Die Standardverwendung ist "Codesignatur" (1.3.6.1.5.5.7.3.3).

/uw

Gibt die Verwendung von "Windows-Systemkomponenten-Überprüfung" an (1.3.6.1.4.1.311.10.3.6).

Timestamp-Befehlsoptionen

In der folgenden Tabelle sind die Optionen aufgeführt, die mit dem TimeStamp-Befehl verwendet werden können.

TimeStamp-Option

Beschreibungen

/t URL

Gibt die URL des Timestampservers an. Die mit einem Timestamp zu versehende Datei muss zuvor signiert worden sein. Entweder die /t-Option oder die /tr-Option ist erforderlich.

/td alg

Fordert einen Digest-Algorithmus an, der vom RFC 3161-Timestampserver verwendet wird. /td wird mit der Option /tr verwendet.

/tr URL

Gibt die URL des RFC 3161-Timestampservers an. Die mit einem Timestamp zu versehende Datei muss zuvor signiert worden sein. Entweder die /tr-Option oder die /t-Option ist erforderlich.

Überprüfen der Befehlsoptionen

Überprüfen der Option

Beschreibungen

/a

Gibt an, dass alle Methoden zum Überprüfen der Datei verwendet werden können. Zuerst werden die Katalogdatenbanken durchsucht, um zu ermitteln, ob die Datei in einem Katalog signiert ist. Wenn die Datei in keinem Katalog signiert ist, versucht das Signaturtool, die eingebettete Signatur der Datei zu überprüfen. Diese Option empfiehlt sich bei der Überprüfung von Dateien, die in einem Katalog signiert sein können, aber nicht müssen. Beispiele für diese Dateien sind Windows-Dateien oder Treiber.

/ad

Sucht den Katalog über die Standardkatalogdatenbank.

/as

Sucht den Katalog über die Katalogdatenbank der Systemkomponenten (Treiber).

/ag CatDBGUID

Sucht den Katalog in der Katalogdatenbank, die durch CatDBGUID angegeben wird.

/c KatDatei

Gibt die Katalogdatei durch den Namen an.

/d

Gibt an, dass Signaturtool die Beschreibung und die Beschreibungs-URL drucken soll.

/kp

Gibt an, dass die Überprüfung mit der Treibersignaturrichtlinie für Kernelmodus ausgeführt werden soll.

/o Version

Überprüft die Datei durch die Betriebssystemversion. Version verfügt über das folgende Format: PlatformID:VerMajor.VerMinor.BuildNumber.

/pa

Gibt an, dass die Richtlinie für die Standardauthentifizierungsüberprüfung verwendet werden soll. Wird die Option /pa nicht angegeben, verwendet das Signaturtool die Richtlinie für die Treiberüberprüfung in Windows. Diese Option kann nicht mit den catdb-Optionen verwendet werden.

/pg RichtlinienGUID

Gibt eine Überprüfungsrichtlinie durch GUID an. Die PolicyGUID entspricht der ActionID der Überprüfungsrichtlinie. Diese Option kann nicht mit den catdb-Optionen verwendet werden.

/ph

Gibt an, dass Signaturtool Seiten-Hashwerte drucken und überprüfen soll.

/r RootSubjectName

Gibt den Namen des Betreffs des Stammzertifikats an, mit dem das Signaturzertifikat verkettet werden muss. Dieser Wert kann eine Teilzeichenfolge des gesamten Betreffnamens des Stammzertifikats sein.

/tw

Gibt an, dass eine Warnung generiert werden muss, wenn die Signatur nicht mit einem Timestamp versehen ist.

Rückgabewert

Signaturtool gibt einen der folgenden Exitcodes zurück, wenn es beendet wird.

Exitcode

Beschreibungen

0

Ausführung war erfolgreich.

1

Ausführung ist fehlgeschlagen.

2

Ausführung wurde mit Warnungen abgeschlossen.

Beispiele

Mit dem folgenden Befehl wird die die Katalogdatei "MyCatalogFileName.cat" zur Systemkomponente und Treiberdatenbank hinzugefügt. Die /v-Option generiert ggf. einen eindeutigen Namen, um das Ersetzen der vorhandenen Katalogdatei MyCatalogFileName.cat zu verhindern.

signtool catdb /v /u MyCatalogFileName.cat

Der folgende Befehl signiert eine Datei automatisch, indem er das beste Zertifikat verwendet.

signtool sign /a MyFile.exe

Der folgende Befehl signiert eine Datei digital, indem ein in einer kennwortgeschützten PFX-Datei gespeichertes Zertifikat verwendet wird.

signtool sign /f MyCert.pfx /p MyPassword MyFile.exe

Der folgende Befehl signiert Dateien digital und fügt ihnen einen Zeitstempel hinzu. Das Zertifikat, das verwendet wird, um die Datei zu signieren, wird in einer PFX-Datei gespeichert.

signtool sign /f MyCert.pfx /t http://timestamp.verisgn/com/scripts.timstamp.dll MyFile.exe

Mit dem folgenden Befehl wird eine Datei mithilfe eines Zertifikats im My-Speicher signiert, die den Antragstellernamen My Company Certificate besitzt.

signtool sign /n "My Company Certificate" MyFile.exe

Der folgende Befehl signiert ein ActiveX-Steuerelement und stellt Informationen bereit, die in Internet Explorer angezeigt wird, wenn der Benutzer zum Installieren des Steuerelements aufgefordert wird.

Signtool sign /f MyCert.pfx /d: "MyControl" /du http://www.example.com/MyControl/info.html MyControl.exe

Mit dem folgenden Befehl wird einer Datei ein Zeitstempel hinzugefügt, die bereits digital signiert wurde.

signtool timestamp /t http://timestamp.verisgn/com/scripts.timstamp.dll MyFile.exe

Mit dem folgenden Befehl wird überprüft, ob eine Datei signiert wurde.

signtool verify MyFile.exe

Mit dem folgenden Befehl wird eine Systemdatei überprüft, die möglicherweise in einem Katalog signiert wird.

signtool verify /a SystemFile.dll

Mit dem folgenden Befehl wird eine Systemdatei überprüft, die im Katalog MyCatalog.cat signiert wird.

signtool verify /c MyCatalog.cat SystemFile.dll

Siehe auch

Referenz

Visual Studio- und Windows SDK-Eingabeaufforderungen

Weitere Ressourcen

.NET Framework-Tools

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

April 2011

Hinzugefügte Informationen zur Verwendung der Visual Studio- und Windows SDK-Eingabeaufforderungen.

Informationsergänzung.

Mai 2010

Reorganisiert; Befehle und Optionen wurden aktualisiert.

Kundenfeedback.