質問

Advanced Search

Solution ID : SO23053

Last Modified : 05/09/2018

Signtoolでの署名方法

Problem


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

Cause

Solution

 

必ずお読みください

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

ご確認ください

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

    Windows SDK

     
  • 署名を行う環境の証明書ストア「 信頼されたルート証明書機関 」へVeriSign Class 3 Public Primary Certification Authority - G5がインストールされている場合、クロスルート証明書を含めて署名ができません。クロスルート証明書を含めて署名をする必要がある場合は、VeriSign Class 3 Public Primary Certification Authority - G5を無効化してください。

    VeriSign Class 3 Public Primary Certification Authority - G5の無効化手順は以下のサイトを参照してください。

    VeriSign Class 3 Public Primary Certification Authority - G5の無効化
     
  • Windows SDKに含まれるSigntool.exeではウィザード形式での署名をサポートしていません。
    Windows SDKをご利用の場合はコマンドラインで署名を行ってください。

    コマンドラインで署名

     
  • ウィザード形式で署名を行う場合は以下のPlatform SDKに含まれるSigntool.exeを利用してください。

    Platform SDK

 

■コマンドラインでの署名方法


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

  1. コマンドプロンプトを起動しsigntool.exeのあるディレクトリへ移動します。
     
    cd c:¥Program Files¥Microsoft SDKs¥Windows¥v7.1¥Bin

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

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

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

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

      タイムスタンプサーバのURL
      http://timestamp.verisign.com/scripts/timstamp.dll

      sha256のタイムスタンプは以下をご利用ください。(オプションは /t ではなく、 /tr を使います)
      http://sha256timestamp.ws.symantec.com/sha256/timestamp
       

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


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

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

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

 

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

signtool.exe sign  /f <pfx証明書ファイル名> /p <pfx証明書パスワード> /t http://timestamp.verisign.com/scripts/timstamp.dll /v <署名するファイル>

signtool.exe sign  /fd sha256 /f <pfx証明書ファイル名> /p <pfx証明書パスワード> /as /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /v <署名するファイル>

 

■ウィザード形式での署名方法

  1. 以下、コマンドを入力しデジタル署名ウィザードを起動します。

    cd c:¥program files¥microsoft platform SDK¥Bin
    signtool signwizard



     
  2. ファイルを選択します。


     
  3. 通常(T)を選択して次へ進みます。


     
  4. 証明書を選択する画面が表示されますので、「ストアから選択」ボタンをクリックします。


     
  5. 署名に利用する証明書を選択します。
    複数表示される場合は、発行者、有効期間などから署名に利用する証明書を選択します。


     
  6. 選択した証明書が正しいことを確認します。


     
  7. 署名つきコードの説明や、設置するウェブサイトのURL情報などを必要に応じて入力します。
    ※省略可能です。


     
  8. タイムスタンプサービスを利用する場合は、署名を付けた時間情報を付与するために、タイムスタンプサーバの情報を入力します。
    タイムスタンプサーバのURLは以下となります。
     

    http://timestamp.verisign.com/scripts/timstamp.dll

    スペル間違いにご注意ください。


     
  9. デジタル署名ウィザードが完了します。


     
  10. 以下の画面がでれば署名作業は終了です。コマンドプロンプトを終了してください。