DigiCert証明書の正規代理店株式会社アールエムエス
DigiCertコードサイニング証明書 サポート
DigiCert サーバー証明書利用団体
  1. ホーム
  2. コードサイニング証明書
  3. サポート
  4. Microsoft Authenticode署名方法

Microsoft Authenticode署名方法

本ページに記載されている手順は環境により異なる場合があり、実際の動作を保証するものではありません。
アプリケーションやツールなどの仕様や設定手順等でご不明な点がある場合は、それらのマニュアルをご確認いただくか、提供元にご連絡ください。
※この手順によって生じた影響や結果について、弊社では一切の責任は負いかねます。

Windows signtoolの入手

このページでは、Windows7・Windows8・Windows10でのWindows signtoolを使ったMicrosoft Authenticodeの署名方法について説明しています。
OSがVistaの場合は、デジタル署名ウィザードでMicrosoft Authenticodeに署名する方法を参照してください。

EVコードサイニング証明書を利用して署名する場合は、EVコードサイニング証明書でMicrosoft Authenticodeに署名する方法を参照してください。
Windows7の場合
SignToolはWindows SDKに含まれています。インストールされていない場合はMicrosoft Windows SDK for Windows 7 and .NET Framework 4からダウンロードしインストールしてください。
Windows 8の場合
SignToolはWindows SDKに含まれています。インストールされていない場合はWindows 8 用 Windows ソフトウェア開発キット (Windows SDK) からダウンロードしインストールしてください。
Windows 10の場合
SignToolはWindows SDKに含まれています。インストールされていない場合はWindows 10 用 Windows ソフトウェア開発キット (Windows SDK) からダウンロードしインストールしてください。

SignToolでの署名手順

SignTool.exe コマンドは、以下のどちらかの方法で使います。

  • ケースA
    DigiCert コードサイニング証明書をWindows証明書ストアにインストールしてから使う
  • ケースB
    DigiCert コードサイニング証明書 .pfx ファイルを直接使う
※signtool.exeは一般には以下の場所に置かれています。
Windows7の場合
C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin
Windows8の場合
C:\Progrram Files(x86)\Windows Kits\8.0\bin\x86
Windows10の場合は
C:\Program Files (x86)\Windows Kits\10\bin\x86

ケースA

  1. お送りするコードサイニング証明書は your_name.pfx のような名称のPFX形式の証明書です。
    これを署名を行うマシンの安全な位置に保存してください。ファイル名は任意で変更できます。
  2. DigiCertコードサイニング証明書をインポートするを参照し、証明書をWindows証明書ストアにインストールしてください。
  3. Windowsのコマンドプロンプトで、signtool.exeが置かれているフォルダに移動し、以下のコマンドを実行してください。
    C:\> signtool sign /t http://timestamp.digicert.com /a "c:\path\to\file.exe"

    Microsoft SignTool Certificate 1
    大きい画像を見る

    /t がタイムスタンプを追加するオプションで、 http://timestamp.digicert.com がタイムスタンプサーバーです。
    /a は Windows証明書ストアに複数の証明書がインストールされている場合、最適な証明書を自動的に選択します。最適な証明書とは「指定された全ての条件を満たす有効な証明書のうち、有効期限が最長のもの」のことです。
    c:\path\to\file.exe が署名対象のコードです。
    複数の証明書がインストールされている場合、以下のように /i オプションで DigiCert発行の証明書を使うよう指定することもできます。
    C:\> signtool sign /t http://timestamp.digicert.com /i DigiCert "c:\path\to\file.exe"

    Microsoft SignTool Certificate 2

    大きい画像を見る
    デフォルトのハッシュ関数はSHA-1ですが、/fd sha256オプションでハッシュ関数SHA256(SHA-2)を指定できます(古いバージョンのsigntoolでは/fdオプションが無いこともあります。その場合は新しSDKで入手してください)。
  4. 署名が成功すると "Successfully signed and timestamped: c:\path\to\file.exe" と表示されます。
signtool signオプションの詳細は、Microsoft MSDNライブラリSignTool.exe(署名ツール)sign コマンドオプションを参照ください。

ケースB

※お送りしたコードサイニング証明書が c:\users\username\DigicertCodeSigning.pfx として保存されたものとします。
  1. Windows のコマンドプロンプトでsigntool.exeが置かれているフォルダに移動し、以下のコマンドを実行してください。
    C:\> signtool sign /t http://timestamp.digicert.com /f "c:\users\username\DigicertCodeSigning.pfx" /p pfxpassword "c:\path\to\file.exe"

    Microsoft SignTool Certificate 3
    大きい画像を見る

    /t がタイムスタンプを追加するオプションで、http://timestamp.digicert.com がタイムスタンプサーバーです。
    /f は利用する証明書を指定するオプションで、c:\users\tadao\DigicertCodeSigning.pfx が証明書です。
    /p はパスワードを指定するオプションで、pfxpasswordは納品時にお知らせしたパスワードで置き換えてください。 c:\path\to\file.exe が署名対象のコードです。
    デフォルトのハッシュ関数はSHA-1ですが、/fd sha256オプションでハッシュ関数SHA256(SHA-2)を指定できます(古いバージョンのsigntoolでは/fdオプションが無いこともあります。その場合は新しSDKで入手してください)。
  2. 署名が成功すると "Successfully signed and timestamped: c:\path\to\file.exe" と表示されます。

署名内容の確認

正しく署名されているかを確認する場合は、署名内容の確認方法の手順に従ってください。

デジタル証明書ニュース
digicert.comトピックス&ニュース