コード署名証明書の使用

この Web ページでは、SSL.com の使用方法について説明します。 OV or EV Microsoft の SignTool と SSL.com のコード署名証明書 SSL Manager.

これらの手順では、コード署名証明書がインストールされているか、ハードウェア トークンにそれがあることを前提としています。 eSigner プラットフォームを使用したクラウドベースのコード署名については、以下を参照してください。 概要ページ この 入学案内.

ハードウェアベースの OV および EV コード署名証明書の場合、秘密キーは YubiKey FIPS USBトークンにのみ存在します それはあなたに送られ、トークンは 添付する必要があります アプリケーションの署名に使用されているコンピュータに。 YubiKey FIPSトークンを使用しているWindowsユーザーも、 YubiKeyスマートカードミニドライバー トークンを使用する前に。

OVと EVコード署名証明書をコンピューターに手動でインストールしないでください。構成の問題が発生する可能性があります。 SSL.comからYubiKeysで出荷された証明書は、インストール以外の追加インストールなしで使用できます。 YubiKeyスマートカードミニドライバー トークンをコンピューターに接続します。 経由で注文した証明書 リモート認証 コンピューターの証明書ストアではなく、秘密キー(YubiKey FIPSまたはその他のサポートされているハードウェアなど)を含むデバイスにダウンロードしてインストールする必要があります。
EVコード署名証明書を使用してWindows10ドライバーに署名することを計画している場合は、次のことを行う必要があります。 登録 Windowsハードウェア開発者プログラムで。
JavaでOV / IVまたはEVコード署名証明書を使用する手順については、 Javaコード署名ガイド.

SignToolで実行可能ファイルに署名する

インストールを開始する Windows SDKとSignTool

SignToolは Windowsの10 SDK。 インストール後、SignToolは次の場所にあります。

C:\ Program Files(x86)\ Windows Kits \ 10 \ bin \ \ x64 \ signtool.exe

開始 PowerShell

スタート PowerShell コマンドウィンドウで「Powershell」を検索して 開始 メニューをクリックして、デスクトップアプリケーションをクリックします。

Powershellは、Windowsのコアサービスへのコマンドラインインターフェイスです。 これを使用してSignToolを実行し、コードに署名できます。

EV用 コード 署名し、USBトークンをコンピューターに接続します(まだ接続していない場合)。 eSignerを使用している場合は、 eSignerクラウドキーアダプター

秘密鍵は、あなたに送信されたUSBトークンにのみ存在し、 トークンを添付する必要があります アプリケーションの署名に使用されているコンピューターに。 OVコード署名証明書を使用している場合は、この手順をスキップする必要があります。

符号 実行可能ファイル

Powershellウィンドウで次のコマンドを発行することにより、実行可能ファイルに署名できます。 signtool.exeでeSignerクラウド署名を使用している場合は、必ずインストールしてください 電子署名者CKA

。\ signtool.exe sign / fd sha256 / a "C:\ path \ to \ MyExecutable.exe"
  •   /fd オプションは、署名時に使用するダイジェストアルゴリズムを選択します。 Windows 10 SDK、HLK、WDK、およびADKビルド 20236以上 署名時にこのオプションを設定する必要があります。 セキュリティのために、SHA256 よりも SHA1 をお勧めします。
  •   /a オプションは、実行可能ファイルに適切なコード署名証明書を自動的に見つけるようにSignToolに指示します。
  • EVコード署名証明書を使用している場合は、USBトークンのPINの入力を求められます。 PINの確認についてサポートが必要な場合は、 このハウツー.PINを入力してください
注: インストーラーに含まれるコードファイル(Windows MSIファイルなど)に署名する場合は、インストーラーをビルドする前にこれらのファイルに署名してから、インストーラーファイル自体に署名する必要があります。

署名証明書の選択

件名を指定してください

複数のコード署名USBトークンまたは証明書がインストールされている場合、 証明書を指定する あなたがそのを含めて使用したい 件名 ビア /n オプションを選択します。

Microsoftの証明書管理ツールを使用して、EVCS証明書のサブジェクト名を見つけることができます 証明書管理。 [スタート]メニューからツールを開き、下の画像に示すように、[証明書]の下の[個人]フォルダーでEV CS証明書を探します。 サブジェクト名は、certmgrの「発行先」フィールドです。

上の画像では、証明書のサブジェクト名は example。 この値は、SignToolで次のコマンドを使用して指定できます。

。\ signtool.exe sign / fd sha256 / n "example" "C:\ path \ to \ MyExecutable.exe"

SHA1ハッシュを指定します

同じサブジェクト名を持つ複数の証明書がある場合は、証明書のSHA1ハッシュ(または「拇印」)を使用して、署名用に証明書を選択することもできます。 交換 THUMBPRINT 以下のコマンドで、実際のSHA1を使用して証明書をハッシュします。 この値は、certmgrで証明書の詳細を表示し、 Thumbprint フィールド(コマンドで使用する前に、拇印からスペース文字を必ず削除してください)。

。\ signtool.exe sign / fd sha256 / sha1 THUMBPRINT "C:\ path \ to \ MyExecutable.exe"

PKCS#12 / PFXファイルを使用する

PKCS#12ファイル(PFXまたはP12ファイルとも呼ばれます)にコード署名証明書と秘密鍵がある場合は、コマンドラインでファイルとそのパスワードを指定できます。

。\ signtool.exe sign / fd sha256 / f "C:\ path \ to \ MyCertificate.pfx" / p password "C:\ path \ to \ MyExecutable.exe"

タイムスタンプ

コードにタイムスタンプを付けると、コード署名証明書の有効期限が切れた後でもコードを信頼できるようになります。 追加したい場合 タイムスタンプ 署名されたバイナリファイルでは、SignToolの /tr オプション。その後にタイムスタンプダイジェストアルゴリズムを設定する必要があります。 /td。 以下のスニペットのコマンドには、からのタイムスタンプが含まれています SSL.com実行可能ファイルに署名する際ののタイムスタンプサービス。

。\ signtool.exe sign / fd sha256 / tr http://ts.ssl.com / td sha256 / a "C:\ path \ to \ MyExecutable.exe"
注: SignToolの /tr オプション(RFC 3161タイムスタンプサーバーのURLを指定)、 /t (タイムスタンプサーバーのURL)、SSL.comのタイムスタンプサーバーと互換性がありません。
注:   /td オプション しなければなりません フォロー /tr オプション。 タイムスタンプダイジェストアルゴリズムがタイムスタンプサーバーの前に指定されている場合、デフォルトのSHA-1アルゴリズムが使用されます。 Windows 10 SDK、HLK、WDK、およびADKビルド 20236以上 の使用が必要 /tr タイムスタンプを付けるとき。 セキュリティのため、SHA256よりもSHA1をお勧めします。
注: デフォルトでは、SSL.com は ECDSA キーからのタイムスタンプをサポートしています。

このエラーが発生した場合: The timestamp certificate does not meet a minimum public key length requirement、ソフトウェア ベンダーに連絡して、ECDSA キーからのタイムスタンプを許可する必要があります。

ソフトウェア ベンダーが通常のエンドポイントの使用を許可する方法がない場合は、このレガシー エンドポイントを使用できます。 http://ts.ssl.com/legacy RSA タイムスタンプ ユニットからタイムスタンプを取得します。

その他のオプション

その他の重要なSignToolオプションは次のとおりです。

  • /d:署名されたコードの説明を追加します。 例えば、 /d "test code".
  • /du:署名されたコードの拡張された説明を含むURLを追加します。 例えば、 /du https://your_website.tld/project/description.

上記のオプションをすべて使用する(ただし省略 /a, /sha1または /f 証明書のサブジェクト名を指定しているため /n、コマンドラインは次のようになります。

signtool.exe sign / n "例" / fd sha256 / tr http://ts.ssl.com / td sha256 / d "テストコード" / du https://your_website.tld/project/description "C:\ path \ to \ MyExecutable.exe "

署名を確認する

このコマンドを使用して、署名されたコードを確認します( /pa オプションはコマンドに存在する必要があります):

。\ signtool.exe verify / pa "C:\ path \ to \ MyExecutable.exe"

ファイルが正常に署名されると、次のような出力が表示されます。

ファイル:C:\ path \ to \ MyExecutable.exeインデックスアルゴリズムタイムスタンプ=================================== ===== 0 sha256 RFC3161正常に検証されました:C:\ path \ to \ MyExecutable.exe

アイコンを右クリックして選択することにより、ファイルが署名されていることを確認することもできます。 プロパティ メニューから、 デジタル署名 タブ。 署名を選択してクリックすると、署名の詳細が表示されます。 詳細

デジタル署名

ここでは、28年2020月XNUMX日にSSLCorpによって作成された有効なデジタル署名がファイルに含まれていることがわかります。

デジタル署名の詳細

で実行可能ファイルに署名する SSL Manager

よりグラフィックベースのアプローチを好む場合は、 SSL.comの社内ソフトウェア、 SSL Manager、ファイルに署名します。 多くの顧客が使用を好む SSL Manager XNUMXつの統合されたインターフェイスですべての証明書に簡単にアクセスできるという追加の利点があるためです。 ダウンロードとインストールの手順について SSL Manager、ご参照ください インストールガイド.

実行可能ファイルに署名するには、まず コード署名>署名とタイムスタンプコードパッケージ   SSL Managerのメニュー。

サイン&タイムスタンプコードパッケージ

コード署名フォームでは、実行可能ファイルとコード署名証明書(ファイルまたは証明書ストアから)、および使用可能なタイムスタンプサーバーのXNUMXつを選択できます。 完了したら、 符号 コードに署名するためのボタン。 PFXファイルから証明書をロードする場合は、ファイルのパスワードを入力する必要があります。 EVコード署名証明書を使用している場合は、USBトークンのPINの入力を求められます。

コード署名に加えて、 SSL Manager 多くの強力な機能を提供します。 詳細については、 SSL Managerのドキュメント、特に コード署名メニュー.

SSL.comをご利用いただきありがとうございます。 ご不明な点がございましたら、メールでお問い合わせください。 Support@SSL.com電話する 1-877-SSL-SECURE、またはこのページの右下にあるチャットリンクをクリックしてください。

SSL.com のニュースレターを購読する

SSL.comからの新しい記事と更新をお見逃しなく

常に最新情報を入手して安全を確保

SSL.com サイバーセキュリティの世界的リーダーであり、 PKI そしてデジタル証明書。サインアップして、最新の業界ニュース、ヒント、製品のお知らせを受け取ります。 SSL.com.

フィードバックをお待ちしております

アンケートにご協力いただき、最近のご購入についてのご意見をお聞かせください。