Share via


SignTool.exe (tekenprogramma)

Sign Tool is een opdrachtregelprogramma dat bestanden digitaal ondertekent, handtekeningen controleert in bestanden en tijdstempelbestanden.

Dit hulpprogramma wordt automatisch geïnstalleerd met Visual Studio. Als u het hulpprogramma wilt uitvoeren, gebruikt u de Visual Studio Developer-opdrachtprompt of Visual Studio Developer PowerShell.

Notitie

Voor de Windows 10 SDK, Windows 10 HLK, Windows 10 WDK en Windows 10 ADK-builds 20236 en hoger is het opgeven van het digest-algoritme vereist. Voor de opdracht SignTool sign moeten het /fd algoritme voor bestandssamenvating en de optie voor het /td tijdstempelalgoritme worden opgegeven tijdens de ondertekening en tijdstempel. Er wordt een fout (foutcode 1) gegenereerd als /fd deze niet is opgegeven tijdens de ondertekening en als /td deze niet is opgegeven tijdens de tijdstempel.

Typ het volgende bij de opdrachtprompt:

Syntaxis

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

Parameters

Argument Beschrijving
command Een van de vier opdrachten (catdb, sign, Timestampof Verify) waarmee een bewerking wordt opgegeven die moet worden uitgevoerd op een bestand. Zie de volgende tabel voor een beschrijving van elke opdracht.
options Een optie waarmee een opdracht wordt gewijzigd. Naast de algemene /q opties ondersteunt /v elke opdracht een unieke set opties.
file_name Het pad naar een bestand dat moet worden ondertekend.

De volgende opdrachten worden ondersteund door sign tool. Elke opdracht wordt gebruikt met verschillende sets opties, die worden vermeld in hun respectieve secties.

Opdracht Beschrijving
catdb Hiermee voegt u een catalogusbestand toe aan of verwijdert u het uit een catalogusdatabase. Catalogusdatabases worden gebruikt voor het automatisch opzoeken van catalogusbestanden en worden geïdentificeerd door GUID. Zie catdb-opdrachtopties voor een lijst met de opties die door de catdb opdracht worden ondersteund.
sign Bestanden digitaal tekenen. Met digitale handtekeningen worden bestanden beschermd tegen manipulatie en kunnen gebruikers de ondertekenaar verifiëren op basis van een handtekeningcertificaat. Zie Opdrachtopties ondertekenen voor een lijst met opties die door de sign opdracht worden ondersteund.
Timestamp Tijdstempelbestanden. Zie TimeStamp Command Options voor een lijst met opties die door de TimeStamp opdracht worden ondersteund.
Verify Controleert de digitale handtekening van bestanden door te bepalen of het handtekeningcertificaat is uitgegeven door een vertrouwde instantie, of het handtekeningcertificaat is ingetrokken en, optioneel, of het handtekeningcertificaat geldig is voor een specifiek beleid. Zie Opdrachtopties verifiëren voor een lijst met de opties die door de Verify opdracht worden ondersteund.

De volgende opties zijn van toepassing op alle opdrachten voor tekenprogramma's.

Globale optie Beschrijving
/q Geeft geen uitvoer weer als de opdracht is uitgevoerd en geeft minimale uitvoer weer als de opdracht mislukt.
/v Geeft uitgebreide uitvoer weer, ongeacht of de opdracht is uitgevoerd of mislukt, en geeft waarschuwingsberichten weer.
/debuggen Geeft foutopsporingsinformatie weer.

Opties voor catdb-opdrachten

De volgende tabel bevat de opties die kunnen worden gebruikt met de catdb opdracht.

Catdb-optie Beschrijving
/d Hiermee geeft u op dat de standaardcatalogusdatabase wordt bijgewerkt. Als noch de /d /g optie wordt gebruikt, werkt Sign Tool het systeemonderdeel en de stuurprogrammadatabase bij.
/gGUID Hiermee geeft u op dat de catalogusdatabase die wordt geïdentificeerd door de GUID voor globally unique identifier, wordt bijgewerkt.
/r Hiermee verwijdert u de opgegeven catalogi uit de catalogusdatabase. Als deze optie niet is opgegeven, worden de opgegeven catalogi toegevoegd aan de catalogusdatabase.
/u Hiermee geeft u op dat automatisch een unieke naam wordt gegenereerd voor de toegevoegde catalogusbestanden. Indien nodig worden de catalogusbestanden hernoemd om naamconflicten met bestaande catalogusbestanden te voorkomen. Als deze optie niet is opgegeven, overschrijft Sign Tool een bestaande catalogus met dezelfde naam als de catalogus die wordt toegevoegd.

opdrachtopties ondertekenen

De volgende tabel bevat de opties die kunnen worden gebruikt met de sign opdracht.

Opdrachtoptie Ondertekenen Beschrijving
/a Hiermee selecteert u automatisch het beste handtekeningcertificaat. Sign Tool vindt alle geldige certificaten die voldoen aan alle opgegeven voorwaarden en selecteer het certificaat dat voor de langste tijd geldig is. Als deze optie niet aanwezig is, verwacht sign tool slechts één geldig handtekeningcertificaat te vinden.
/ac bestand Voegt een extra certificaat van bestand toe aan het handtekeningblok.
/as Voegt deze handtekening toe. Als er geen primaire handtekening aanwezig is, wordt deze handtekening in plaats daarvan de primaire handtekening gemaakt.
/c CertTemplateName Hiermee geeft u de naam van het certificaatsjabloon (een Microsoft-extensie) voor het handtekeningcertificaat op.
/csp CSPName Hiermee geeft u de cryptografische serviceprovider (CSP) op die de container met persoonlijke sleutels bevat.
/d Desc Hiermee geeft u een beschrijving van de ondertekende inhoud.
/du URL Hiermee geeft u een URL (Uniform Resource Locator) op voor de uitgebreide beschrijving van de ondertekende inhoud.
/f SignCertFile Hiermee geeft u het handtekeningcertificaat in een bestand. Als het bestand de PFX-indeling (Personal Information Exchange) heeft en is beveiligd met een wachtwoord, gebruikt u de /p optie om het wachtwoord op te geven. Als het bestand geen persoonlijke sleutels bevat, gebruikt u de /csp en /kc opties om de naam van de CSP- en persoonlijke sleutelcontainer op te geven.
/fd Hiermee geeft u het algoritme voor bestandssamenvating op dat moet worden gebruikt voor het maken van bestandshandtekeningen.
Notitie: Er wordt een fout gegenereerd als de switch niet wordt opgegeven tijdens het /fd ondertekenen.
/fd certHash Als u het tekenreekscertificaat opgeeft , wordt standaard het algoritme gebruikt voor het handtekeningcertificaat.
Notitie: Er wordt een fout gegenereerd als de switch niet wordt opgegeven tijdens het /fd ondertekenen.
/i IssuerName Hiermee geeft u de naam van de uitgever van het handtekeningcertificaat. Deze waarde kan een subtekenreeks zijn van de volledige naam van de uitgever.
/kc PrivKeyContainerName Hiermee geeft u de naam van de persoonlijke sleutelcontainer.
/n Onderwerpnaam Hiermee geeft u de naam van het onderwerp van het handtekeningcertificaat. Deze waarde kan een subtekenreeks van de volledige onderwerpnaam zijn.
/nph Indien ondersteund, onderdrukt u pagina-hashes voor uitvoerbare bestanden. De standaardwaarde wordt bepaald door de omgevingsvariabele SIGNTOOL_PAGE_HASHES en door de wintrust.dll versie. Deze optie wordt genegeerd voor niet-PE-bestanden.
/p Wachtwoord Hiermee geeft u het wachtwoord op dat moet worden gebruikt bij het openen van een PFX-bestand. (Gebruik de /f optie om een PFX-bestand op te geven.)
/p7 Pad Hiermee geeft u op dat een PKCS-bestand (Public Key Cryptography Standards) #7 wordt geproduceerd voor elk opgegeven inhoudsbestand. PKCS #7-bestanden hebben de naam bestandsnaam.p7 van het pad\.
/p7ceWaarde Hiermee geeft u opties voor de ondertekende PKCS #7-inhoud. Stel waarde in op Ingesloten om de ondertekende inhoud in te sluiten in het PKCS #7-bestand of op 'DetachedSignedData' om het ondertekende gegevensgedeelte van een losgekoppeld PKCS #7-bestand te produceren. Als de /p7ce optie niet wordt gebruikt, wordt de ondertekende inhoud standaard ingesloten.
/p7co<OID> Hiermee geeft u de object-id (OID) op die de ondertekende PKCS #7-inhoud identificeert.
/ph Indien ondersteund, genereert u pagina-hashes voor uitvoerbare bestanden.
/r RootSubjectName Hiermee geeft u de naam op van het onderwerp van het basiscertificaat waarnaar het handtekeningcertificaat moet worden gekoppeld. Deze waarde kan een subtekenreeks zijn van de volledige onderwerpnaam van het basiscertificaat.
/s StoreName Hiermee geeft u het archief dat moet worden geopend bij het zoeken naar het certificaat. Als deze optie niet is opgegeven, wordt het My archief geopend.
/sha1 Hekje Hiermee geeft u de SHA1-hash van het handtekeningcertificaat. De SHA1-hash wordt meestal opgegeven wanneer meerdere certificaten voldoen aan de criteria die zijn opgegeven door de resterende switches.
/sm Hiermee geeft u op dat een computerarchief, in plaats van een gebruikersarchief, wordt gebruikt.
/t URL Hiermee geeft u de URL van de tijdstempelserver. Als deze optie (of /tr) niet aanwezig is, wordt het ondertekende bestand niet gestempeld. Er wordt een waarschuwing gegenereerd als tijdstempels mislukken. Deze optie kan niet worden gebruikt met de /tr optie.
/td Alg Wordt gebruikt met de /tr optie om een digest-algoritme aan te vragen dat wordt gebruikt door de RFC 3161-tijdstempelserver.
Notitie: Er wordt een fout gegenereerd als /td er geen tijdstempel wordt opgegeven.
/tr URL Hiermee geeft u de URL van de RFC 3161 tijdstempelserver. Als deze optie (of /t) niet aanwezig is, wordt het ondertekende bestand niet gestempeld. Er wordt een waarschuwing gegenereerd als tijdstempels mislukken. Deze optie kan niet worden gebruikt met de /t optie.
/u Gebruik Hiermee geeft u het uitgebreide sleutelgebruik (EKU) op dat aanwezig moet zijn in het handtekeningcertificaat. De gebruikswaarde kan worden opgegeven door OID of tekenreeks. Het standaardgebruik is Ondertekening van programmacode (1.3.6.1.5.5.7.3.3).
/uw Hiermee geeft u het gebruik van Windows System Component Verification (1.3.6.1.4.1.311.10.3.6).

Zie SignTool gebruiken om een bestand te ondertekenen voor gebruiksvoorbeelden.

TimeStamp-opdrachtopties

De volgende tabel bevat de opties die kunnen worden gebruikt met de TimeStamp opdracht.

TimeStamp-optie Beschrijving
/p7 Tijdstempels PKCS #7 bestanden.
/t URL Hiermee geeft u de URL van de tijdstempelserver. Het bestand dat een tijdstempel heeft, moet eerder zijn ondertekend. /t De optie of de /tr optie is vereist.
/td Alg Wordt gebruikt met de /tr optie om een digest-algoritme aan te vragen dat wordt gebruikt door de RFC 3161-tijdstempelserver.
Notitie: Er wordt een fout gegenereerd als /td er geen tijdstempel wordt opgegeven.
/tpindex Tijdstempels van de handtekening bij index.
/tr URL Hiermee geeft u de URL van de RFC 3161 tijdstempelserver. Het bestand dat een tijdstempel heeft, moet eerder zijn ondertekend. /tr De optie of de /t optie is vereist.

Zie Tijdstempels toevoegen aan eerder ondertekende bestanden voor een gebruiksvoorbeeld.

Opdrachtopties verifiëren

Optie Verifiëren Beschrijving
/a Hiermee geeft u op dat alle methoden kunnen worden gebruikt om het bestand te verifiëren. Eerst worden de catalogusdatabases doorzocht om te bepalen of het bestand is aangemeld in een catalogus. Als het bestand niet is aangemeld in een catalogus, probeert het hulpprogramma voor ondertekenen de ingesloten handtekening van het bestand te controleren. Deze optie wordt aanbevolen bij het controleren van bestanden die al dan niet zijn aangemeld in een catalogus. Voorbeelden van deze bestanden zijn Windows-bestanden of -stuurprogramma's.
/ad Hiermee zoekt u de catalogus met behulp van de standaardcatalogusdatabase.
/agCatDBGUID Hiermee vindt u de catalogus in de catalogusdatabase die wordt geïdentificeerd door de CatDBGUID.
/all Controleert alle handtekeningen in een bestand met meerdere handtekeningen.
/as Hiermee vindt u de catalogus met behulp van de catalogusdatabase voor systeemonderdelen (stuurprogramma's).
/cCatFile Hiermee geeft u het catalogusbestand op naam.
/d Hiermee geeft u op dat het tekenprogramma de beschrijving en de beschrijvings-URL moet afdrukken.
/ds Index Controleert de handtekening op een opgegeven positie.
/hash (SHA1|SHA256) Hiermee geeft u een optioneel hash-algoritme dat moet worden gebruikt bij het zoeken naar een bestand in een catalogus.
/kp Hiermee geeft u op dat verificatie moet worden uitgevoerd met het ondertekeningsbeleid voor stuurprogramma's in de kernelmodus.
/ms Maakt gebruik van meerdere verificatiesemantiek. Dit is het standaardgedrag van een WinVerifyTrust-aanroep in Windows 8 en hoger.
/oVersie Controleert het bestand op basis van de versie van het besturingssysteem. Versie heeft de volgende vorm: PlatformID:VerMajor.VerMinor.BuildNumber. PlatformID vertegenwoordigt de onderliggende waarde van een PlatformID opsommingslid. Belangrijk: Het gebruik van de /o switch wordt aanbevolen. Als /o dit niet is opgegeven, kan SignTool.exe onverwachte resultaten retourneren. Als u bijvoorbeeld de /o switch niet opneemt, worden systeemcatalogussen die correct worden gevalideerd op een ouder besturingssysteem mogelijk niet correct gevalideerd op een nieuwer besturingssysteem.
/p7 Controleert PKCS #7-bestanden. Er worden geen bestaande beleidsregels gebruikt voor PKCS #7-validatie. De handtekening wordt gecontroleerd en er wordt een keten gebouwd voor het handtekeningcertificaat.
/pa Hiermee geeft u op dat het standaardverificatiebeleid voor authenticode moet worden gebruikt. Als de /pa optie niet is opgegeven, gebruikt het tekenprogramma het verificatiebeleid voor Windows-stuurprogramma's. Deze optie kan niet worden gebruikt met de catdb opties.
/pgPolicyGUID Hiermee geeft u een verificatiebeleid per GUID. Het PolicyGUID komt overeen met de ActionID van het verificatiebeleid. Deze optie kan niet worden gebruikt met de catdb opties.
/ph Hiermee geeft u op dat het hulpprogramma voor ondertekenen de hash-waarden van de pagina moet afdrukken en verifiëren.
/rRootSubjectName Hiermee geeft u de naam op van het onderwerp van het basiscertificaat waarnaar het handtekeningcertificaat moet worden gekoppeld. Deze waarde kan een subtekenreeks zijn van de volledige onderwerpnaam van het basiscertificaat.
/tw Hiermee geeft u op dat er een waarschuwing moet worden gegenereerd als de handtekening geen tijdstempel heeft.

Zie SignTool gebruiken om een bestandshandtekening te verifiëren voor gebruiksvoorbeelden.

Retourwaarde

Sign Tool retourneert een van de volgende afsluitcodes wanneer deze wordt beëindigd.

Afsluitcode Beschrijving
0 De uitvoering is geslaagd.
1 De uitvoering is mislukt.
2 De uitvoering is voltooid met waarschuwingen.

Voorbeelden

Met de volgende opdracht wordt het catalogusbestand MyCatalogFileName.cat toegevoegd aan de systeemonderdeel- en stuurprogrammadatabase. De /u optie genereert indien nodig een unieke naam om te voorkomen dat een bestaand catalogusbestand met de naam MyCatalogFileName.catwordt vervangen.

signtool catdb /v /u MyCatalogFileName.cat  

Met de volgende opdracht wordt automatisch een bestand ondertekend met behulp van het beste certificaat.

signtool sign /a /fd SHA256 MyFile.exe

Met de volgende opdracht wordt een bestand digitaal ondertekend met behulp van een certificaat dat is opgeslagen in een PFX-bestand dat met een wachtwoord is beveiligd.

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

Met de volgende opdracht wordt een bestand digitaal ondertekend en een tijdstempel weergegeven. Het certificaat dat wordt gebruikt om het bestand te ondertekenen, wordt opgeslagen in een PFX-bestand.

signtool sign /f MyCert.pfx /t http://timestamp.digicert.com /fd SHA256 MyFile.exe

Met de volgende opdracht wordt een bestand ondertekend met behulp van een certificaat in het My archief met een onderwerpnaam van My Company Certificate.

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

Met de volgende opdracht wordt een ActiveX-besturingselement ondertekend en wordt informatie weergegeven in de browser wanneer de gebruiker wordt gevraagd het besturingselement te installeren.

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

Met de volgende opdracht wordt een bestand gestempeld dat al digitaal is ondertekend.

signtool timestamp /t http://timestamp.digicert.com MyFile.exe

Met de volgende opdracht wordt een bestand gestempeld met een RFC 3161-tijdstempelserver.

signtool timestamp /tr http://timestamp.digicert.com /td SHA256 MyFile.exe

Met de volgende opdracht wordt gecontroleerd of een bestand is ondertekend.

signtool verify MyFile.exe  

Met de volgende opdracht wordt een systeembestand gecontroleerd dat mogelijk is aangemeld in een catalogus.

signtool verify /a SystemFile.dll  

Met de volgende opdracht wordt een systeembestand geverifieerd dat is aangemeld in een catalogus met de naam MyCatalog.cat.

signtool verify /c MyCatalog.cat SystemFile.dll  

Zie ook