ファイル署名ツール (Signcode.exe)
ファイル署名ツールは、Authenticode デジタル署名を使用して、ポータブル実行可能 (PE) ファイル (.dll ファイルまたは .exe ファイル) に署名します。マルチファイル アセンブリに含まれいてるアセンブリまたは個別のファイルに署名できます。アセンブリを配布する場合は、個別のファイルではなく、アセンブリに署名する必要があります。オプションを指定せずに Signcode.exe を実行すると、署名を支援するウィザードが起動します。
ファイル署名ツールは、.NET Framework SDK Version 1.0 および 1.1 にのみ付属しています。新しいバージョンの .NET Framework SDK の場合は、代わりに 署名ツール (SignTool.exe) ユーティリティを使用します。
signcode [options] filename | assemblyname
パラメータ
引数 | 説明 |
---|---|
filename |
署名する PE ファイルの名前。 |
assemblyname |
署名するアセンブリの名前。このファイルはアセンブリ マニフェストを格納している必要があります。 |
オプション | 説明 |
---|---|
-$ authority |
証明書の署名機関を指定します。individual または commercial を指定する必要があります。既定では、証明書が持つ最高のアクセス許可が使用されます。 |
-a algorithm |
署名に使用するハッシュ アルゴリズムを指定します。md5 (既定値) または sha1 を指定する必要があります。 |
-c file |
エンコードされたソフトウェア発行元証明書を含むファイルを指定します。 |
-cn 名前 |
証明書の共通名を指定します。 |
-i info |
内容に関する詳細情報を入手できる場所を指定します (通常は URL)。 |
-j dllName |
ファイルの署名に必要な認証済み属性の配列を返す DLL の名前を指定します。1 つ以上の DLL を指定するには、-j オプションを繰り返し指定します。 |
-jp param |
直前に指定した DLL に関して渡すパラメータを指定します。たとえば、-j dll1 -jp dll1Param のように指定します。1 つの DLL についてパラメータを 1 つだけ指定できます。 |
-k keyname |
キー コンテナ名を指定します。 |
-ky keytype |
キーの種類を指定します。signature、exchange、または整数 (4 など) を指定する必要があります。 |
-n 名前 |
署名するファイルの内容を表すテキスト名を指定します。 |
-p provider |
システム上の暗号プロバイダの名前を指定します。 |
-r location |
レジストリ内の証明書ストアの位置を指定します。currentuser (既定値) または localmachine を指定する必要があります。 |
-s store |
署名証明書を含む証明書ストアを指定します。既定値はストア my です。 |
-sha1 thumbprint |
証明書ストアに含まれる署名証明書の sha1 ハッシュである thumbprint を指定します。 |
-sp policy |
証明書ストア ポリシーを設定します。spcStore (既定値) または chain を指定する必要があります。chain を指定した場合は、自己署名証明書を含め、検査チェイン内のすべての証明書が署名に付加されます。spcStore を指定した場合は、信頼される自己署名証明書は、署名に付加されるチェイン内の証明書から除外されます。 |
-spc file |
ソフトウェア発行元証明書を含む SPC ファイルを指定します。 |
-t URL |
指定したアドレスにあるタイム スタンプ サーバーによって、ファイルにタイム スタンプを記録することを指定します。 |
-tr 数値 |
タイム スタンプの記録に成功するまでの最大試行回数を指定します。既定値は 1 です。 |
-tw 数値 |
タイム スタンプの試行を繰り返すときの間隔 (秒数) を指定します。既定値は 0 です。 |
-v pvkFile |
秘密キーを含む秘密キー ファイル (.pvk) の名前を指定します。 |
-x |
ファイルにタイム スタンプを記録しますが、署名はしません。 |
-y type |
使用する暗号プロバイダの種類を指定します。 暗号プロバイダには、暗号標準と暗号アルゴリズムの実装が含まれます。既定の暗号プロバイダの一覧については、Platform SDK の「Microsoft Cryptographic Service Providers」を参照してください。 |
-? |
このツールのコマンド構文とオプションを表示します。 |
解説
ソフトウェア発行元証明書 (SPC) ファイルを使用して署名するには、秘密キーが PVK ファイルに含まれている場合は、-spc オプションと -v オプションを指定する必要があります。秘密キーがレジストリ キー コンテナ内にある場合は、-spc オプションと -k オプションを指定する必要があります。SPC ファイルを使用してファイルに署名する場合は、証明書作成ツールおよびソフトウェア発行元証明書テスト ツールを使用して SPC ファイルを作成しておく必要があります。
例
ソフトウェア発行元証明書 XYZ.spc とレジストリ キー コンテナ XYZ 内の秘密キーを使用して、XYZ.exe に署名するコマンドを次に示します。
signcode /spc XYZ.spc /k XYZ XYZ.exe
myCertificate.spc
内の証明書と myKey.pvk
内の秘密キーを使用して、アセンブリ myAssembly
に署名するコマンドを次に示します。
signcode /spc myCertificate.spc /v myKey.pvk myAssembly
参照
関連項目
.NET Framework ツール
証明書作成ツール (Makecert.exe)
ソフトウェア発行元証明書テスト ツール (Cert2spc.exe)
SDK のコマンド プロンプト