SignTool.exe (署名ツール)SignTool.exe (Sign Tool)

署名ツールはコマンド ライン ツールで、ファイルにデジタル署名を添付し、ファイルの署名を検証し、ファイルにタイム スタンプを付けます。Sign Tool is a command-line tool that digitally signs files, verifies signatures in files, and time-stamps files.

このツールは、Visual Studio と共に自動的にインストールされます。This tool is automatically installed with Visual Studio. このツールを実行するには、開発者コマンド プロンプト (または、Windows 7 の Visual Studio コマンド プロンプト) を使用します。To run the tool, use the Developer Command Prompt (or the Visual Studio Command Prompt in Windows 7). 詳細については、「Visual Studio 用開発者コマンド プロンプト」を参照してください。For more information, see Command Prompts.

コマンド プロンプトに次のように入力します。At the command prompt, type the following:

構文Syntax

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

パラメーターParameters

引数Argument 説明Description
command 4 つのコマンド (catdbsignTimestamp、または Verify) の 1 つで、ファイルで実行する操作を指定します。One of four commands (catdb, sign, Timestamp, or Verify) that specifies an operation to perform on a file. 各コマンドの詳細については、次の表を参照してください。For a description of each command, see the next table.
options コマンドを変更するオプションです。An option that modifies a command. グローバル オプション /q および /v のほかに、各コマンドは固有のオプション セットをサポートします。In addition to the global /q and /v options, each command supports a unique set of options.
file_name 署名するファイルへのパスです。The path to a file to sign.

次のコマンドは、署名ツールでサポートされています。The following commands are supported by Sign Tool. 各コマンドは、それぞれのセクションに示す個別のオプション セットと共に使用されます。Each command is used with distinct sets of options, which are listed in their respective sections.

コマンドCommand 説明Description
catdb カタログ ファイルをカタログ データベースに追加したり、カタログ データベースから削除したりします。Adds a catalog file to, or removes it from, a catalog database. カタログ データベースは、カタログ ファイルの自動検索で使用され、GUID によって識別されます。Catalog databases are used for automatic lookup of catalog files and are identified by GUID. catdb コマンドでサポートされているオプションの一覧については、「catdb コマンド オプション」を参照してください。For a list of the options supported by the catdb command, see catdb Command Options.
sign ファイルにデジタル署名します。Digitally signs files. デジタル署名はファイルの改ざんを防止し、ユーザーが署名証明書に基づいて署名者を検証できるようにします。Digital signatures protect files from tampering, and enable users to verify the signer based on a signing certificate. sign コマンドでサポートされているオプションの一覧については、「sign コマンド オプション」を参照してください。For a list of the options supported by the sign command, see sign Command Options.
Timestamp ファイルにタイム スタンプを付けます。Time-stamps files. TimeStamp コマンドでサポートされているオプションの一覧については、「TimeStamp コマンド オプション」を参照してください。For a list of the options supported by the TimeStamp command, see TimeStamp Command Options.
Verify ファイルのデジタル署名を検証します。そのために、署名証明書が信頼できる機関により発行されたかどうか、署名証明書が取り消されたかどうかを確認します。また、オプションで、署名証明書が特定のポリシーに対して有効になっているかどうかを確認します。Verifies the digital signature of files by determining whether the signing certificate was issued by a trusted authority, whether the signing certificate has been revoked, and, optionally, whether the signing certificate is valid for a specific policy. Verify コマンドでサポートされているオプションの一覧については、「Verify コマンド オプション」を参照してください。For a list of the options supported by the Verify command, see Verify Command Options.

次のオプションは、すべての署名ツール コマンドに適用されます。The following options apply to all Sign Tool commands.

Global オプションGlobal option 説明Description
/q/q コマンドが正常に実行した場合には何も出力されず、コマンドが失敗した場合には最小限の出力が表示されます。Displays no output if the command runs successfully, and displays minimal output if the command fails.
/v/v コマンドが正常に実行したか、失敗したかにかかわらず、詳細出力と警告メッセージが表示されます。Displays verbose output regardless of whether the command runs successfully or fails, and displays warning messages.
/debug/debug デバッグ情報を表示します。Displays debugging information.

catdb コマンド オプションcatdb Command Options

次の表に、catdb コマンドと共に使用できるオプションを示します。The following table lists the options that can be used with the catdb command.

Catdb オプションCatdb option 説明Description
/d 既定のカタログ データベースを更新するように指定します。Specifies that the default catalog database is updated. /d/g のいずれのオプションも使用しない場合、署名ツールはシステム コンポーネントおよびドライバー データベースを更新します。If neither the /d nor the /g option is used, Sign Tool updates the system component and driver database.
/g GUID/g GUID グローバル一意識別子 GUID によって識別されるカタログ データベースを更新するように指定します。Specifies that the catalog database identified by the globally unique identifier GUID is updated.
/r 指定したカタログをカタログ データベースから削除します。Removes the specified catalogs from the catalog database. このオプションが指定されていない場合、署名ツールはカタログ データベースに指定されたカタログを追加します。If this option is not specified, Sign Tool adds the specified catalogs to the catalog database.
/u 追加されたカタログ ファイルに対して、一意な名前を自動的に生成するように指定します。Specifies that a unique name is automatically generated for the added catalog files. 必要に応じて、既存のカタログ ファイルと名前が競合しないように、カタログ ファイルの名前が変更されます。If necessary, the catalog files are renamed to prevent name conflicts with existing catalog files. このオプションが指定されていない場合、署名ツールは追加されるカタログと同じ名前を持つ既存のカタログを上書きします。If this option is not specified, Sign Tool overwrites any existing catalog that has the same name as the catalog being added.

sign コマンド オプションsign Command Options

次の表に、sign コマンドと共に使用できるオプションを示します。The following table lists the options that can be used with the sign command.

Sign コマンド オプションSign command option 説明Description
/a 最適な署名証明書を自動的に選択します。Automatically selects the best signing certificate. 署名ツールは、指定されたすべての条件を満たす有効な証明書をすべて検出し、最も長い期間有効である証明書を選択します。Sign Tool will find all valid certificates that satisfy all specified conditions and select the one that is valid for the longest time. このオプションが指定されていない場合、署名ツールは有効な署名証明書を 1 つだけ検索することが前提とします。If this option is not present, Sign Tool expects to find only one valid signing certificate.
/ac file/ac file file から署名ブロックに証明書を追加します。Adds an additional certificate from file to the signature block.
/as この署名を追加します。Appends this signature. プライマリ署名が存在しない場合、この署名がプライマリ署名になります。If no primary signature is present, this signature is made the primary signature instead.
/c CertTemplateName/c CertTemplateName 署名証明書に対して証明書テンプレート名 (Microsoft 拡張機能) を指定します。Specifies the Certificate Template Name (a Microsoft extension) for the signing certificate.
/csp CSPName/csp CSPName 秘密キー コンテナーを含む暗号化サービス プロバイダー (CSP: Cryptographic Service Provider) を指定します。Specifies the cryptographic service provider (CSP) that contains the private key container.
/d Desc/d Desc 署名された内容の説明を指定します。Specifies a description of the signed content.
/du URL/du URL 署名された内容の詳細な説明に対する URL (Uniform Resource Locator) を指定します。Specifies a Uniform Resource Locator (URL) for the expanded description of the signed content.
/f SignCertFile/f SignCertFile ファイルの署名証明書を指定します。Specifies the signing certificate in a file. ファイルが個人情報交換 (PFX: Personal Information Exchange) 形式でパスワードによって保護されている場合に、/p オプションを使用してパスワードを指定します。If the file is in Personal Information Exchange (PFX) format and protected by a password, use the /p option to specify the password. ファイルに秘密キーが含まれていない場合、/csp および /kc オプションを使用して、CSP と秘密キー コンテナー名を指定します。If the file does not contain private keys, use the /csp and /kc options to specify the CSP and private key container name.
/fd ファイルの署名の作成に使用するファイル ダイジェスト アルゴリズムを指定します。Specifies the file digest algorithm to use for creating file signatures. 既定値は SHA1 です。The default is SHA1.
/i IssuerName/i IssuerName 署名証明書の発行者の名前を指定します。Specifies the name of the issuer of the signing certificate. この値には、発行者名全体の部分文字列を指定できます。This value can be a substring of the entire issuer name.
/kc PrivKeyContainerName/kc PrivKeyContainerName 秘密キー コンテナー名を指定します。Specifies the private key container name.
/n SubjectName/n SubjectName 署名証明書の件名を指定します。Specifies the name of the subject of the signing certificate. この値には、件名全体の部分文字列を指定できます。This value can be a substring of the entire subject name.
/nph サポートされている場合に、実行可能ファイルのページ ハッシュを抑制します。If supported, suppresses page hashes for executable files. 既定値は、SIGNTOOL_PAGE_HASHES 環境変数と wintrust.dll のバージョンによって決定されます。The default is determined by the SIGNTOOL_PAGE_HASHES environment variable and by the wintrust.dll version. PE ファイル以外では、このオプションは無視されます。This option is ignored for non-PE files.
/p Password/p Password PFX ファイルを開くときに使用するパスワードを指定します。Specifies the password to use when opening a PFX file. PFX ファイルを指定するには、/f オプションを使用します。(Use the /f option to specify a PFX file.)
/p7 Path/p7 Path 指定する各コンテンツ ファイルについて公開キー暗号化規格 (PKCS) #7 ファイルを作成することを指定します。Specifies that a Public Key Cryptography Standards (PKCS) #7 file is produced for each specified content file. PKCS #7 ファイルの名前は path\filename.p7 です。PKCS #7 files are named path\filename.p7.
/p7ce Value/p7ce Value 署名された PKCS#7 コンテンツのオプションを指定します。Specifies options for the signed PKCS #7 content. 署名されたコンテンツを PKCS #7 ファイルに埋め込む場合は Value を "Embedded" に設定し、デタッチされた PKCS #7 ファイルの署名されたデータ部分を作成する場合には "DetachedSignedData" に設定します。Set Value to "Embedded" to embed the signed content in the PKCS #7 file, or to "DetachedSignedData" to produce the signed data portion of a detached PKCS #7 file. /p7ce オプションを使用しない場合は、既定で署名されたコンテンツが埋め込まれます。If the /p7ce option is not used, the signed content is embedded by default.
/p7co <OID>/p7co <OID> 署名された PKCS#7 コンテンツを識別するオブジェクト識別子 (OID) を指定します。Specifies the object identifier (OID) that identifies the signed PKCS #7 content.
/ph サポートされている場合に、実行可能ファイルのページ ハッシュを生成します。If supported, generates page hashes for executable files.
/r RootSubjectName/r RootSubjectName 署名証明書のチェーン先とするルート証明書の件名を指定します。Specifies the name of the subject of the root certificate that the signing certificate must chain to. この値には、ルート証明書の件名全体の部分文字列を指定できます。This value may be a substring of the entire subject name of the root certificate.
/s StoreName/s StoreName 証明書を検索するときに開くストアを指定します。Specifies the store to open when searching for the certificate. このオプションが指定されていない場合、My ストアが開きます。If this option is not specified, the My store is opened.
/sha1 Hash/sha1 Hash 署名証明書の SHA1 ハッシュを指定します。Specifies the SHA1 hash of the signing certificate. 以降のスイッチによって指定された条件を複数の証明書が満たす場合、一般的に SHA1 ハッシュが指定されます。The SHA1 hash is commonly specified when multiple certificates satisfy the criteria specified by the remaining switches.
/sm ユーザー ストアの代わりに、コンピューター ストアを使用するように指定します。Specifies that a machine store, instead of a user store, is used.
/t URL/t URL タイム スタンプ サーバーの URL を指定します。Specifies the URL of the time stamp server. このオプション (または /tr) が指定されていない場合、署名されたファイルにはタイム スタンプが付きません。If this option (or /tr) is not present, the signed file will not be time stamped. タイム スタンプを付けるのに失敗すると、警告が生成されます。A warning is generated if time stamping fails. このオプションは、/tr オプションと一緒に使用することはできません。This option cannot be used with the /tr option.
/td alg/td alg /tr オプションと共に使用して、RFC 3161 タイム スタンプ サーバーで使用されるダイジェスト アルゴリズムを要求します。Used with the /tr option to request a digest algorithm used by the RFC 3161 time stamp server.
/tr URL/tr URL RFC 3161 タイム スタンプ サーバーの URL を指定します。Specifies the URL of the RFC 3161 time stamp server. このオプション (または /t) が指定されていない場合、署名されたファイルにはタイム スタンプが付きません。If this option (or /t) is not present, the signed file will not be time stamped. タイム スタンプを付けるのに失敗すると、警告が生成されます。A warning is generated if time stamping fails. このオプションは、/t オプションと一緒に使用することはできません。This option cannot be used with the /t option.
/u Usage/u Usage 署名証明書に必要な拡張キー使用法 (EKU: Enhanced Key Usage) を指定します。Specifies the enhanced key usage (EKU) that must be present in the signing certificate. 使用法の値は、OID または文字列によって指定できます。The usage value can be specified by OID or string. 既定の使用法は "Code Signing" (1.3.6.1.5.5.7.3.3) です。The default usage is "Code Signing" (1.3.6.1.5.5.7.3.3).
/uw 使用法 "Windows System Component Verification" (1.3.6.1.4.1.311.10.3.6) を指定します。Specifies usage of "Windows System Component Verification" (1.3.6.1.4.1.311.10.3.6).

使用例については、「Using SignTool to Sign a File」(SignTool を使用してファイルに署名する) を参照してください。For usage examples, see Using SignTool to Sign a File.

TimeStamp コマンド オプションTimeStamp Command Options

次の表に、TimeStamp コマンドと共に使用できるオプションを示します。The following table lists the options that can be used with the TimeStamp command.

TimeStamp オプションTimeStamp option 説明Description
/p7 PKCS #7 ファイルにタイム スタンプを付けます。Time stamps PKCS #7 files.
/t URL/t URL タイム スタンプ サーバーの URL を指定します。Specifies the URL of the time stamp server. タイム スタンプを付けるファイルは、事前に署名されている必要があります。The file being time stamped must have previously been signed. /t オプションまたは /tr オプションを指定する必要があります。Either the /t or the /tr option is required.
/td alg/td alg RFC 3161 タイム スタンプ サーバーで使用されるダイジェスト アルゴリズムを要求します。Requests a digest algorithm used by the RFC 3161 time stamp server. /td は、/tr オプションと共に使用します。/td is used with the /tr option.
/tp index/tp index index で署名にタイム スタンプを付けます。Time stamps the signature at index.
/tr URL/tr URL RFC 3161 タイム スタンプ サーバーの URL を指定します。Specifies the URL of the RFC 3161 time stamp server. タイム スタンプを付けるファイルは、事前に署名されている必要があります。The file being time stamped must have previously been signed. /tr オプションまたは /t オプションを指定する必要があります。Either the /tr or the /t option is required.

使用例については、「Adding Time Stamps to Previously Signed Files」(署名済みのファイルにタイム スタンプを追加する) を参照してください。For a usage example, see Adding Time Stamps to Previously Signed Files.

Verify コマンド オプションVerify Command Options

Verify オプションVerify option 説明Description
/a ファイルの検証にすべてのメソッドを使用できることを指定します。Specifies that all methods can be used to verify the file. まず、カタログ データベースを検索して、カタログでファイルが署名されているかどうかを確認します。First, the catalog databases are searched to determine whether the file is signed in a catalog. 任意のカタログでファイルが署名されていない場合、署名ツールはファイルの埋め込み署名の検証を試みます。If the file is not signed in any catalog, Sign Tool attempts to verify the file's embedded signature. カタログで署名されているファイルまたは署名されていないファイルを検証するときには、このオプションをお勧めします。This option is recommended when verifying files that may or may not be signed in a catalog. これらのファイルの例には、Windows ファイルまたはドライバーが含まれます。Examples of these files include Windows files or drivers.
/ad 既定のカタログ データベースを使用してカタログを検索します。Finds the catalog by using the default catalog database.
/ag CatDBGUID/ag CatDBGUID CatDBGUID によって識別されるカタログ データベースのカタログを検索します。Finds the catalog in the catalog database that is identified by the CatDBGUID.
/all 複数の署名を含むファイル内のすべての署名を確認します。Verifies all signatures in a file that includes multiple signatures.
/as システム コンポーネント (ドライバー) のカタログ データベースを使用してカタログを検索します。Finds the catalog by using the system component (driver) catalog database.
/c CatFile/c CatFile 名前でカタログ ファイルを指定します。Specifies the catalog file by name.
/d 署名ツールで説明と説明の URL を出力するように指定します。Specifies that Sign Tool should print the description and the description URL.
/ds Index/ds Index 指定した位置の署名を検証します。Verifies the signature at a specified position.
/hash (SHA1|SHA256)/hash (SHA1|SHA256) カタログ内のファイルを検索する場合に使用するオプションのハッシュ アルゴリズムを指定します。Specifies an optional hash algorithm to use when searching for a file in a catalog.
/kp カーネル モード ドライバーの署名ポリシーを使用して検証を実行するように指定します。Specifies that verification should be performed with the kernel-mode driver signing policy.
/ms 複数の検証セマンティクスを使用します。Uses multiple verification semantics. これは、Windows 8Windows 8 以上での WinVerifyTrust 呼び出しの既定の動作です。This is the default behavior of a WinVerifyTrust call on Windows 8Windows 8 and above.
/o Version/o Version オペレーティング システムのバージョンでファイルを確認します。Verifies the file by operating system version. Version の形式は、PlatformID:VerMajor.VerMinor.BuildNumber です。Version has the following form: PlatformID:VerMajor.VerMinor.BuildNumber. PlatformID は、PlatformID 列挙メンバーの基になる値を表します。PlatformID represents the underlying value of a PlatformID enumeration member. 重要: /o スイッチを使用することをお勧めします。Important: The use of the /o switch is recommended. /o を指定しない場合、SignTool.exe から予期しない結果が返されることがあります。If /o is not specified, SignTool.exe may return unexpected results. たとえば、/o スイッチを含めない場合、古いオペレーティング システム上で正しく検証されるシステム カタログが新しいオペレーティング システムで正しく検証されないことがあります。For example, if you do not include the /o switch, system catalogs that validate correctly on an older operating system may not validate correctly on a newer operating system.
/p7 PKCS #7 ファイルを確認します。Verifies PKCS #7 files. PKCS #7 検証で既存のポリシーは使用されません。No existing policies are used for PKCS #7 validation. 署名がチェックされ、署名証明書のチェーンがビルドされます。The signature is checked and a chain is built for the signing certificate.
/pa 既定の Authenticode 検証ポリシーを使用するように指定します。Specifies that the Default Authenticode Verification Policy should be used. /pa オプションが指定されていない場合、署名ツールは Windows ドライバー検証ポリシーを使用します。If the /pa option is not specified, Sign Tool uses the Windows Driver Verification Policy. このオプションは、catdb オプションと一緒に使用することはできません。This option cannot be used with the catdb options.
/pg PolicyGUID/pg PolicyGUID GUID により検証ポリシーを指定します。Specifies a verification policy by GUID. PolicyGUID は検証ポリシーの ActionID に対応しています。The PolicyGUID corresponds to the ActionID of the verification policy. このオプションは、catdb オプションと一緒に使用することはできません。This option cannot be used with the catdb options.
/ph 署名ツールでページ ハッシュ値を出力および検証するように指定します。Specifies that Sign Tool should print and verify page hash values.
/r RootSubjectName/r RootSubjectName 署名証明書のチェーン先とするルート証明書の件名を指定します。Specifies the name of the subject of the root certificate that the signing certificate must chain to. この値には、ルート証明書の件名全体の部分文字列を指定できます。This value can be a substring of the entire subject name of the root certificate.
/tw 署名にタイム スタンプが付けられていない場合に、警告を生成することを指定します。Specifies that a warning should be generated if the signature is not time stamped.

使用例については、「Using SignTool to Verify a File Signature」(SignTool を使用してファイルの署名を検証する) を参照してください。For usage examples, see Using SignTool to Verify a File Signature.

戻り値Return Value

署名ツールは、終了時に次のいずれかの終了コードを返します。Sign Tool returns one of the following exit codes when it terminates.

終了コードExit code 説明Description
00 実行に成功しました。Execution was successful.
11 実行に失敗しました。Execution has failed.
22 実行は完了しましたが、警告があります。Execution has completed with warnings.

使用例Examples

カタログ ファイル MyCatalogFileName.cat をシステム コンポーネントおよびドライバー データベースに追加するコマンドを次に示します。The following command adds the catalog file MyCatalogFileName.cat to the system component and driver database. /u オプションは、必要に応じて一意の名前を生成し、MyCatalogFileName.cat という名前の既存のカタログ ファイルが置き換えられないようにします。The /u option generates a unique name if necessary to prevent replacing an existing catalog file named MyCatalogFileName.cat.

signtool catdb /v /u MyCatalogFileName.cat  

最適な証明書を使用してファイルに自動的に署名するコマンドを次に示します。The following command signs a file automatically by using the best certificate.

signtool sign /a MyFile.exe  

パスワードで保護された PFX ファイルに格納されている証明書を使用してファイルにデジタル署名するコマンドを次に示します。The following command digitally signs a file by using a certificate stored in a password-protected PFX file.

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

ファイルにデジタル署名してタイム スタンプを付けるコマンドを次に示します。The following command digitally signs and time-stamps a file. ファイルへの署名に使用する証明書は、PFX ファイルに格納されています。The certificate used to sign the file is stored in a PFX file.

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

My ストアにある件名が My Company Certificate の証明書を使用してファイルに署名するコマンドを次に示します。The following command signs a file by using a certificate located in the My store that has a subject name of My Company Certificate.

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

ActiveX コントロールに署名して、ユーザーがコントロールをインストールするように求められるときに Internet Explorer に表示される情報を指定するコマンドを次に示します。The following command signs an ActiveX control and provides information that is displayed by Internet Explorer when the user is prompted to install the control.

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

デジタル署名済みのファイルにタイム スタンプを付けるコマンドを次に示します。The following command time-stamps a file that has already been digitally signed.

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

ファイルが署名済みであることを検証するコマンドを次に示します。The following command verifies that a file has been signed.

signtool verify MyFile.exe  

カタログで署名されている可能性があるシステム ファイルを検証するコマンドを次に示します。The following command verifies a system file that may be signed in a catalog.

signtool verify /a SystemFile.dll  

MyCatalog.cat という名前のカタログで署名されているシステム ファイルを検証するコマンドを次に示します。The following command verifies a system file that is signed in a catalog named MyCatalog.cat.

signtool verify /c MyCatalog.cat SystemFile.dll  

参照See Also

ツールTools
Visual Studio 用開発者コマンド プロンプトCommand Prompts