署名ツールはコマンド ライン ツールで、ファイルにデジタル署名を添付し、ファイルの署名を検証し、ファイルにタイム スタンプを付けます。
メモ |
|---|
| 署名ツールは Microsoft Windows NT、Windows Me、Windows 98、または Windows 95 ではサポートされていません。 |
signtool [command] [options] [file_name | ...]
パラメータ
|
引数
|
説明
|
| command | コマンド フラグの 1 つで、ファイルで実行する操作を指定します。 |
| options | オプション フラグの 1 つで、コマンド フラグを変更します。 |
| file_name | 署名するファイルへのパスです。 |
次のコマンドは、署名ツールでサポートされています。
|
コマンド
|
説明
|
| catdb | カタログ ファイルをカタログ データベースに追加したり、カタログ データベースから削除したりします。 |
| sign | ファイルにデジタル署名します。 |
| signwizard | 署名ウィザードを起動します。ファイル名コマンド ライン引数に対しては、1 つのファイルのみを指定できます。 |
| timestamp | ファイルにタイム スタンプを付けます。 |
| verify | ファイルのデジタル署名を検証します。 |
次のオプションは、catdb コマンドに対して適用されます。
|
Catdb オプション
|
説明
|
| /d | 既定のカタログ データベースを更新するように指定します。/d と /g のいずれのオプションも使用しない場合、署名ツールはシステム コンポーネントおよびドライバ データベースを更新します。 |
| /g GUID | グローバル一意識別子 (GUID) によって識別されるカタログ データベースを更新するように指定します。 |
| /r | 指定したカタログをカタログ データベースから削除します。このオプションが指定されていない場合、署名ツールはカタログ データベースに指定されたカタログを追加します。 |
| /u | 追加されたカタログ ファイルに対して、一意な名前を自動的に生成するように指定します。必要に応じて、既存のカタログ ファイルと名前が競合しないように、カタログ ファイルの名前が変更されます。このオプションが指定されていない場合、署名ツールは追加されるカタログと同じ名前を持つ既存のカタログを上書きします。 |
メモ |
|---|
| カタログ データベースは、カタログ ファイルの自動検索で使用されます。 |
次のオプションは、sign コマンドに対して適用されます。
|
署名オプション
|
説明
|
| /a | 最適な署名証明書を自動的に選択します。このオプションが指定されていない場合、署名ツールは有効な署名証明書を 1 つだけ検索することが前提とします。 |
| /c CertTemplateName | 署名証明書に対して証明書テンプレート名 (Microsoft 拡張機能) を指定します。 |
| /csp CSPName | 秘密キー コンテナを含む暗号サービス プロバイダ (CSP) を指定します。 |
| /d Desc | 署名された内容の説明を指定します。 |
| /du URL | 署名された内容の拡張された説明に対して URL (Uniform Resource Locator) を指定します。 |
| /f SignCertFile | ファイルの署名証明書を指定します。ファイルが個人情報交換 (PFX: Personal Information Exchange) 形式でパスワードによって保護されている場合に、/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 Usage | 署名証明書に必要な拡張キー使用法 (EKU: Enhanced Key Usage) を指定します。使用法の値は、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 Version | オペレーティング システムのバージョンでファイルを確認します。バージョンのパラメータは、PlatformID:VerMajor.VerMinor.BuildNumber という形式です。 |
| /pa | 既定の認証検査ポリシーを使用するように指定します。/pa オプションが指定されていない場合、署名ツールは Windows ドライバ検証ポリシーを使用します。このオプションは、catdb オプションとは併用できません。 |
| /pg PolicyGUID | GUID により検証ポリシーを指定します。GUID は検証ポリシーの ActionID に対応しています。このオプションは catdb オプションとは併用できません。 |
| /r RootSubjectName | 署名証明書のチェーン先とするルート証明書の件名を指定します。この値には、ルート証明書の件名全体の部分文字列を指定できます。 |
| /tw | 署名にタイム スタンプが付けられていない場合に、警告を生成することを指定します。 |
次のオプションは、すべての署名ツール コマンドに適用されます。
|
Global オプション
|
説明
|
| /q | 成功した実行の出力および失敗した実行の最小出力はありません。 |
| /v | 成功した実行、失敗した実行、および警告メッセージの詳細出力。 |

解説
署名ツールでは、再頒布可能な CAPICOM 2.0 をローカル コンピュータにインストールする必要があります。再頒布可能な CAPICOM 2.0 は、http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm から入手できます。
署名ツールの verify コマンドは、署名証明書が信頼できる機関により発行されたかどうか、署名証明書が取り消されたかどうかを確認します。また、オプションで、署名証明書が特定のポリシーに対して有効になっているかどうかを確認します。
署名ツールは、成功した実行に対しては 0、失敗した実行に対しては 1、警告で完了した実行に対しては 2 の終了コードを返します。

例
コマンドには、最適な証明書を使用してファイルに自動的に署名する方法が示されています。
signtool sign /a MyFile.exe

参照