Dela via


SignTool.exe (teckenverktyg)

Sign Tool är ett kommandoradsverktyg som digitalt signerar filer, verifierar signaturer i filer och tidsstämplar.

Det här verktyget installeras automatiskt med Visual Studio. Om du vill köra verktyget använder du Visual Studio Developer Command Prompt eller Visual Studio Developer PowerShell.

Kommentar

Windows 10 SDK, Windows 10 HLK, Windows 10 WDK och Windows 10 ADK bygger 20236 och kräver senare att du anger algoritmen för sammandrag. SignTool-kommandot sign kräver att algoritmen /fd för filsammandrag och tidsstämpelns /td sammandragsalgoritm anges under signering respektive tidsstämpling. Ett fel (felkod 1) utlöses om /fd det inte anges under signeringen och om /td det inte anges under tidsstämpling.

Skriv följande vid kommandotolken:

Syntax

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

Parametrar

Argument beskrivning
command Ett av fyra kommandon (catdb, sign, Timestamp, eller Verify) som anger en åtgärd som ska utföras på en fil. En beskrivning av varje kommando finns i nästa tabell.
options Ett alternativ som ändrar ett kommando. Förutom de globala /q alternativen och /v alternativen har varje kommando stöd för en unik uppsättning alternativ.
file_name Sökvägen till en fil som ska signeras.

Följande kommandon stöds av teckenverktyget. Varje kommando används med distinkta uppsättningar med alternativ, som visas i respektive avsnitt.

Kommando beskrivning
catdb Lägger till en katalogfil i eller tar bort den från en katalogdatabas. Katalogdatabaser används för automatisk sökning av katalogfiler och identifieras av GUID. En lista över de alternativ som stöds av kommandot finns i catdb catdb-kommandoalternativ.
sign Signerar filer digitalt. Digitala signaturer skyddar filer från manipulering och gör det möjligt för användare att verifiera undertecknaren baserat på ett signeringscertifikat. En lista över de alternativ som stöds av kommandot finns i sign signera kommandoalternativ.
Timestamp Tidsstämplar filer. En lista över de alternativ som stöds av kommandot finns i TimeStamp TimeStamp-kommandoalternativ.
Verify Verifierar den digitala signaturen för filer genom att avgöra om signeringscertifikatet har utfärdats av en betrodd utfärdare, om signeringscertifikatet har återkallats och eventuellt om signeringscertifikatet är giltigt för en specifik princip. En lista över de alternativ som stöds av kommandot finns i Verify Verifiera kommandoalternativ.

Följande alternativ gäller för alla sign tool-kommandon.

Globalt alternativ beskrivning
/q Visar inga utdata om kommandot körs och visar minimala utdata om kommandot misslyckas.
/v Visar utförliga utdata oavsett om kommandot körs eller misslyckas och visar varningsmeddelanden.
/felsöka Visar felsökningsinformation.

catdb-kommandoalternativ

I följande tabell visas de alternativ som kan användas med catdb kommandot .

Catdb-alternativ beskrivning
/d Anger att standardkatalogdatabasen uppdateras. Om varken /d alternativet eller /g används uppdaterar Sign Tool systemkomponenten och drivrutinsdatabasen.
/gGUID Anger att katalogdatabasen som identifieras av det globalt unika identifierar-GUID :et uppdateras.
/r Tar bort de angivna katalogerna från katalogdatabasen. Om det här alternativet inte har angetts lägger Sign Tool till de angivna katalogerna i katalogdatabasen.
/u Anger att ett unikt namn genereras automatiskt för de tillagda katalogfilerna. Om det behövs byter katalogfilerna namn för att förhindra namnkonflikter med befintliga katalogfiler. Om det här alternativet inte har angetts skriver Sign Tool över alla befintliga kataloger som har samma namn som katalogen som läggs till.

signera kommandoalternativ

I följande tabell visas de alternativ som kan användas med sign kommandot .

Kommandoalternativet Signera beskrivning
/a Väljer automatiskt det bästa signeringscertifikatet. Sign Tool hittar alla giltiga certifikat som uppfyller alla angivna villkor och väljer det som är giltigt under den längsta tiden. Om det här alternativet inte finns förväntar sig Sign Tool att endast hitta ett giltigt signeringscertifikat.
/ac fil Lägger till ytterligare ett certifikat från filen i signaturblocket.
/as Lägger till signaturen. Om det inte finns någon primär signatur görs den här signaturen till den primära signaturen i stället.
/c CertTemplateName Anger certifikatmallens namn (ett Microsoft-tillägg) för signeringscertifikatet.
/csp CSPName Anger den kryptografiska tjänstprovider (CSP) som innehåller containern för privat nyckel.
/d Desc Anger en beskrivning av det signerade innehållet.
/du URL Anger en url (Uniform Resource Locator) för den utökade beskrivningen av det signerade innehållet.
/f SignCertFile Anger signeringscertifikatet i en fil. Om filen är i PFX-format (Personal Information Exchange) och skyddas av ett lösenord använder du /p alternativet för att ange lösenordet. Om filen inte innehåller privata nycklar använder du /csp alternativen och /kc för att ange containernamnet csp och privat nyckel.
/fd Anger den algoritm för filsammandrag som ska användas för att skapa filsignaturer.
Not: Ett fel genereras om växeln /fd inte anges under signeringen.
/fd certHash Om du anger strängcertifikatetHash används som standard den algoritm som används på signeringscertifikatet.
Not: Ett fel genereras om växeln /fd inte anges under signeringen.
/i IssuerName Anger namnet på utfärdaren av signeringscertifikatet. Det här värdet kan vara en delsträng av hela utfärdarnamnet.
/kc PrivKeyContainerName Anger containernamnet för den privata nyckeln.
/n SubjectName Anger namnet på ämnet för signeringscertifikatet. Det här värdet kan vara en delsträng av hela ämnesnamnet.
/nph Om det stöds undertrycks sidhashvärden för körbara filer. Standardvärdet bestäms av miljövariabeln SIGNTOOL_PAGE_HASHES och av wintrust.dll version. Det här alternativet ignoreras för icke-PE-filer.
/p Lösenord Anger lösenordet som ska användas när du öppnar en PFX-fil. (Använd alternativet /f för att ange en PFX-fil.)
/p7Stig Anger att en PKCS-fil (Public Key Cryptography Standards) #7 skapas för varje angiven innehållsfil. PKCS #7-filer heter path\filename.p7.
/p7ceVärde Anger alternativ för det signerade PKCS #7-innehållet. Ange Värde till "Embedded" för att bädda in det signerade innehållet i PKCS #7-filen eller till "DetachedSignedData" för att skapa den signerade datadelen av en fristående PKCS #7-fil. Om alternativet /p7ce inte används bäddas det signerade innehållet in som standard.
/p7co<OID> Anger den objektidentifierare (OID) som identifierar det signerade PKCS #7-innehållet.
/ph Om det stöds genererar sidan hashvärden för körbara filer.
/r RootSubjectName Anger namnet på ämnet för rotcertifikatet som signeringscertifikatet måste länka till. Det här värdet kan vara en delsträng av hela ämnesnamnet för rotcertifikatet.
/s StoreName Anger vilket arkiv som ska öppnas när du söker efter certifikatet. Om det här alternativet inte har angetts öppnas arkivet My .
/sha1 Hasch Anger SHA1-hashen för signeringscertifikatet. SHA1-hashen anges ofta när flera certifikat uppfyller de kriterier som anges av de återstående växlarna.
/sm Anger att ett datorlager, i stället för ett användararkiv, används.
/t URL Anger URL:en för tidsstämpelservern. Om det här alternativet (eller /tr) inte finns kommer den signerade filen inte att vara tidsstämplad. En varning genereras om tidsstämpling misslyckas. Det här alternativet kan inte användas med alternativet /tr .
/td Alg Används med /tr alternativet att begära en sammandragsalgoritm som används av RFC 3161-tidsstämpelservern.
Not: Ett fel genereras om /td det inte anges under tidsstämpling.
/tr URL Anger URL:en för RFC 3161-tidsstämpelservern. Om det här alternativet (eller /t) inte finns kommer den signerade filen inte att vara tidsstämplad. En varning genereras om tidsstämpling misslyckas. Det här alternativet kan inte användas med alternativet /t .
/u Användning Anger den förbättrade nyckelanvändningen (EKU) som måste finnas i signeringscertifikatet. Användningsvärdet kan anges med OID eller sträng. Standardanvändningen är "Kodsignering" (1.3.6.1.5.5.7.3.3).
/uw Anger användningen av "Windows System Component Verification" (1.3.6.1.4.1.311.10.3.6).

Användningsexempel finns i Använda SignTool för att signera en fil.

Kommandoalternativ för TimeStamp

I följande tabell visas de alternativ som kan användas med TimeStamp kommandot .

TimeStamp-alternativ beskrivning
/p7 Tidsstämplar PKCS #7-filer.
/t URL Anger URL:en för tidsstämpelservern. Filen som tidsstämplas måste ha signerats tidigare. /t Antingen krävs alternativet eller/tr.
/td Alg Används med /tr alternativet att begära en sammandragsalgoritm som används av RFC 3161-tidsstämpelservern.
Not: Ett fel genereras om /td det inte anges under tidsstämpling.
/tpindex Tid stämplar signaturen vid index.
/tr URL Anger URL:en för RFC 3161-tidsstämpelservern. Filen som tidsstämplas måste ha signerats tidigare. /tr Antingen krävs alternativet eller/t.

Ett användningsexempel finns i Lägga till tidsstämplar till tidigare signerade filer.

Verifiera kommandoalternativ

Alternativet Verifiera beskrivning
/a Anger att alla metoder kan användas för att verifiera filen. Först genomsöks katalogdatabaserna för att avgöra om filen är inloggad i en katalog. Om filen inte är inloggad i någon katalog försöker sign tool verifiera filens inbäddade signatur. Det här alternativet rekommenderas när du verifierar filer som kanske inte är inloggade i en katalog. Exempel på dessa filer är Windows-filer eller -drivrutiner.
/ad Söker efter katalogen med hjälp av standardkatalogdatabasen.
/agCatDBGUID Hittar katalogen i katalogdatabasen som identifieras av CatDBGUID.
/all Verifierar alla signaturer i en fil som innehåller flera signaturer.
/as Söker efter katalogen med hjälp av katalogdatabasen för systemkomponenten (drivrutinen).
/cCatFile Anger katalogfilen efter namn.
/d Anger att sign tool ska skriva ut beskrivningen och beskrivnings-URL:en.
/ds Index Verifierar signaturen på en angiven position.
/hash (SHA1|SHA256) Anger en valfri hash-algoritm som ska användas när du söker efter en fil i en katalog.
/kp Anger att verifieringen ska utföras med principen för drivrutinssignering i kernelläge.
/ms Använder flera verifieringssemantik. Detta är standardbeteendet för ett WinVerifyTrust-anrop i Windows 8 och senare.
/oVersion Verifierar filen efter operativsystemversion. Versionen har följande formulär: PlatformID:VerMajor.VerMinor.BuildNumber. PlatformID representerar det underliggande värdet för en PlatformID uppräkningsmedlem. Viktigt: Användning av växeln /o rekommenderas. Om /o inte anges kan SignTool.exe returnera oväntade resultat. Om du till exempel inte inkluderar växeln /o kanske systemkataloger som verifierar korrekt på ett äldre operativsystem inte verifieras korrekt på ett nyare operativsystem.
/p7 Verifierar PKCS #7-filer. Inga befintliga principer används för PKCS #7-validering. Signaturen är markerad och en kedja skapas för signeringscertifikatet.
/pa Anger att standardprincipen för verifiering av authenticode ska användas. Om alternativet /pa inte har angetts använder sign tool windows-drivrutinsverifieringsprincipen. Det här alternativet kan inte användas med catdb alternativen.
/pgPolicyGUID Anger en verifieringsprincip efter GUID. PolicyGUID motsvarar Verifieringsprincipens ActionID. Det här alternativet kan inte användas med catdb alternativen.
/ph Anger att teckenverktyget ska skriva ut och verifiera sidhashvärden.
/rRootSubjectName Anger namnet på ämnet för rotcertifikatet som signeringscertifikatet måste länka till. Det här värdet kan vara en delsträng av hela ämnesnamnet för rotcertifikatet.
/tw Anger att en varning ska genereras om signaturen inte är tidsstämplad.

Användningsexempel finns i Använda SignTool för att verifiera en filsignatur.

Returvärde

Sign Tool returnerar någon av följande slutkoder när den avslutas.

Slutkod beskrivning
0 Körningen lyckades.
1 Körningen misslyckades.
2 Körningen har slutförts med varningar.

Exempel

Följande kommando lägger till katalogfilen MyCatalogFileName.cat till systemkomponenten och drivrutinsdatabasen. Alternativet /u genererar ett unikt namn om det behövs för att förhindra att en befintlig katalogfil med namnet ersätts MyCatalogFileName.cat.

signtool catdb /v /u MyCatalogFileName.cat  

Följande kommando signerar en fil automatiskt med hjälp av det bästa certifikatet.

signtool sign /a /fd SHA256 MyFile.exe

Följande kommando signerar en fil digitalt med hjälp av ett certifikat som lagras i en lösenordsskyddad PFX-fil.

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

Följande kommando signerar och tidsstämplar en fil digitalt. Certifikatet som används för att signera filen lagras i en PFX-fil.

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

Följande kommando signerar en fil med hjälp av ett certifikat som finns i arkivet My som har ämnesnamnet My Company Certificate.

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

Följande kommando signerar en ActiveX-kontroll och innehåller information som visas i webbläsaren när användaren uppmanas att installera kontrollen.

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

Följande kommando tidsstämplar en fil som redan har signerats digitalt.

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

Följande kommando tidsstämplar en fil med hjälp av en RFC 3161-tidsstämpelserver.

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

Följande kommando verifierar att en fil har signerats.

signtool verify MyFile.exe  

Följande kommando verifierar en systemfil som kan vara inloggad i en katalog.

signtool verify /a SystemFile.dll  

Följande kommando verifierar en systemfil som är inloggad i en katalog med namnet MyCatalog.cat.

signtool verify /c MyCatalog.cat SystemFile.dll  

Se även