質問

Advanced Search

Solution ID : SO23053

Last Modified : 12/22/2021

Signtoolでの署名方法

Problem


Signtoolでの署名方法を教えてください。

Cause

Solution

 

必ずお読みください

このページではMicrosoft 社 Authenticode 署名ツール ( Signtool.exe ) を利用した基本的なデジタル署名の手順を説明しています。
署名ツールの詳細や不明点、エラーに関する内容は署名ツールの提供元であるマイクロソフト社へご確認ください。

ご確認ください

  • 署名ツールのダウンロードおよびインストールが完了していない場合は、以下のサイトよりダウンロードの上、インストールします。

    Windows SDK
     


※インストール先やバージョンによってコマンドが異なりますので、環境にあわせて内容を変更してください。

  1. コマンドプロンプトからsigntool.exeを実行できる環境を確認してください。
    以下のようなメッセージが表示されている時は、signtool.exeファイルの場所を正しく指定してください。
    #signtoolexe
    'signtool.exe' は、内部コマンドまたは外部コマンド、
    操作可能なプログラムまたはバッチ ファイルとして認識されていません。
    例)c:¥Program Files¥Microsoft SDKs¥Windows¥v7.1¥Bin¥signtool.exe sign(署名時のオプションを指定します)

  2. signtool.exeを実行します。
     
    signtool.exe sign /a /v <署名するファイル>
     

    ※/aオプションを指定すると自動的に最適な証明書ファイルが、PC上の証明書ストアから選択されて署名されます。
    バックアップされたpfxファイルを使う場合や、複数証明書が搭載されている環境の場合は、以下のように直接指定してください。

     
    • 直接pfxファイルを指定する場合は /f と /p オプションを使用します。
       
      signtool.exe sign /f <pfx証明書ファイル名> /p <pfx証明書パスワード> /v <署名するファイル>

    • Timestampを追加する場合は /tr オプションを追加の上、タイムスタンプサーバのURLを入力します。

      タイムスタンプサーバのURL
      http://timestamp.digicert.com


       

      signtool.exe sign /f <pfx証明書ファイル名> /p <pfx証明書パスワード> /tr <タイムスタンプURL> /v <署名するファイル>


    • Window7以降のWindows SDKでは、/fd オプションで署名アルゴリズムを指定することが可能です。

      SHA-2(sha256)ハッシュアルゴリズムで署名する例
       

      signtool.exe sign /fd sha256 /f <pfx証明書ファイル名> /p <pfx証明書パスワード> /tr <タイムスタンプURL> /v <署名するファイル>

    •  

      SHA-1、SHA-256の両ハッシュアルゴリズムで署名をする必要がある場合は、以下を参考にしてください。

      signtool.exe sign  /f <pfx証明書ファイル名> /p <pfx証明書パスワード> /tr <タイムスタンプURL> /v <署名するファイル>

      signtool.exe sign  /fd sha256 /f <pfx証明書ファイル名> /p <pfx証明書パスワード> /as /tr <タイムスタンプURL> /v <署名するファイル>

 

コードサイニング証明書の署名で使用できるタイムスタンプサーバの URL
(参照)EVコードサイニング証明書での署名方法