簽署工具 (signtool.exe)

更新:2007 年 11 月

簽署工具是一個命令列工具,能夠數位簽署檔案、驗證檔案中的簽章或為檔案加上時間戳記。

注意事項:

在 Microsoft Windows NT、Windows Me、Windows 98 或 Windows 95 上不支援簽署工具。

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

參數

引數

說明

command

其中一個命令旗標,用來指定要對檔案執行的作業。

options

其中一個選項旗標,用來修改命令旗標。

file_name

要簽署之檔案的路徑。

簽署工具支援下列命令。

命令

說明

catdb

在目錄資料庫中加入或移除目錄檔。

sign

數位簽署檔案。

signwizard

啟動簽署精靈,只能指定單一檔案做為檔名命令列引數。

timestamp

為檔案加上時間戳記。

verify

驗證檔案的數位簽章。

下列選項適用於 catdb 命令。

Catdb 選項

說明

/d

指示預設目錄資料庫已經更新。如果未使用 /d/g 選項,簽署工具便會更新系統元件和驅動程式資料庫。

/g GUID

指示由全域唯一識別項 (GUID) 所識別的目錄資料庫已經更新。

/r

從目錄資料庫移除指定的目錄。如果未指定此選項,簽署工具將會在目錄資料庫中加入指定的目錄。

/u

指定已為加入的目錄檔自動產生唯一的名稱。必要時,目錄檔會重新命名,以避免與現有的目錄檔發生名稱衝突。如果未指定此選項,簽署工具將會覆寫具有與所要加入之目錄相同名稱的所有現有目錄。

注意事項:

目錄資料庫可以用來自動查閱目錄檔。

下列選項適用於 sign 命令。

Sign 選項

說明

/a

自動選取最佳的簽署憑證。如果沒有這個選項,簽署工具只需要找出一個有效的簽署憑證。

/c CertTemplateName

指定適用於簽署憑證的「憑證範本名稱」(Certificate Template Name),這是一個 Microsoft 擴充功能。

/csp CSPName

指定包含金鑰的密碼編譯服務提供者 (Cryptographic Service Provider,CSP)。

/d Desc

指定簽署內容的描述。

/du URL

為已簽署的內容之擴充描述,指定統一資源定位器 (Uniform Resource Locator,URL)。

/f SignCertFile

指定檔案中的簽署憑證。如果檔案為「個人資訊交換」(PFX) 格式並且利用密碼加以保護,請使用 /p 選項指定密碼。如果檔案沒有包含私密金鑰,請使用 /csp/k 選項,個別指定 CSP 和私密金鑰容器名稱。

/i IssuerName

指定簽署憑證的發行者名稱。這個值可以是完整發行者名稱的子字串。

/k PrivKeyContainerName

指定私密金鑰容器名稱。

/n SubjectName

指定簽署憑證的主體名稱。這個值可以是完整主體名稱的子字串。

/p Password

指定用來開啟 PFX 檔案的密碼。PFX 檔案可以使用 /f 選項指定。

/r RootSubjectName

指定簽署憑證必須鏈結之根憑證的主體名稱。這個值可以是完整根憑證主體名稱的子字串。

/s StoreName

指定搜尋憑證時要開啟的存放區。如果未指定此選項,則會開啟「個人」存放區。

/sha1 Hash

指定簽署憑證的 SHA1 雜湊。

/sm

指定使用電腦存放區,而非使用者存放區。

/t URL

指定時間戳記伺服器的 URL。如果沒有這個選項,簽署的檔案就不會加上時間戳記。如果加上時間戳記失敗,便會產生警告。

/u 用法

指定在簽署憑證時必須存在的增強金鑰使用方法 (Enhanced Key Usage,EKU)。使用方法的值可以利用 OID 或字串指定。預設的使用方法為 "Code Signing" (1.3.6.1.5.5.7.3.3)。

下列選項適用於timestamp 命令。

Timestamp 選項

說明

/t URL

必要項。指定時間戳記伺服器的 URL。要加上時間戳記的檔案必須先經過簽署。

下列選項適用於 verify 命令。

Sign 選項

說明

/a

指定所有方法都可以用來驗證檔案。首先會搜尋目錄資料庫,判斷檔案是否已在目錄中簽署。如果檔案未在任何目錄中簽署,簽署工具便會嘗試驗證檔案的內嵌簽署。驗證不一定已在目錄中簽署的檔案時,建議您採用這個選項。不一定已簽署之檔案的範例包括了 Windows 檔案或驅動程式。

/ad

使用預設目錄資料庫尋找目錄。

/as

使用系統元件 (驅動程式) 目錄資料庫尋找目錄。

/ag CatDBGUID

在由 GUID 所識別的目錄資料庫中尋找目錄。

/c CatFile

依名稱指定目錄檔。

/o 版本

根據作業系統版本驗證檔案。版本參數的格式為:PlatformID:VerMajor.VerMinor.BuildNumber。

/pa

指定使用「預設驗證的驗證原則」(Default Authentication Verification Policy)。如果未指定 /pa 選項,簽署工具便會使用「Windows 驅動程式驗證原則」(Windows Driver Verification Policy)。這個選項不能與 catdb 選項一起使用。

/pg PolicyGUID

GUID 指定驗證原則。GUID 會對應到驗證原則的 ActionID。這個選項不能與 catdb 選項一起使用。

/r RootSubjectName

指定簽署憑證必須鏈結之根憑證的主體名稱。這個值可以是完整根憑證主體名稱的子字串。

/tw

指定如果簽章未加上時間戳記,便產生警告。

下列選項適用於所有簽署工具命令。

Global 選項

說明

/q

執行成功時沒有任何輸出,執行失敗時產生最少輸出。

/v

執行成功或失敗時所產生的輸出以及警告訊息,都顯示詳細資料。

備註

本機電腦上必須安裝 CAPICOM 2.0 可轉散發套件,才能執行簽署工具。CAPICOM 2.0 可轉散發套件可以從 https://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm 取得。

簽署工具的 verify 命令會判斷簽署憑證是否由受信任的授權單位所發佈、簽署憑證是否已撤銷,以及簽署憑證是否為特定原則的有效憑證。

執行成功時,簽署工具會傳回結束代碼 (Exit Code) 0、執行失敗時傳回 1,執行完成但出現警告訊息則會傳回 2。

範例

下列命令示範如何使用最佳憑證自動簽署檔案。

signtool sign /a MyFile.exe

請參閱

參考

.NET Framework 工具

SDK 命令提示字元