

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# で Microsoft SignTool を使用してファイルに署名 AWS CloudHSM する
<a name="third-signtool-toplevel"></a>

AWS CloudHSM は、Microsoft Signtool を使用してクライアント SDK 3 およびクライアント SDK 5 を介してファイルに署名するサポートを提供します。これらのツールを使用する手順は、現在ダウンロードしているクライアント SDK のバージョンによって異なります。次のセクションでは、各 SDK に関する情報を提供します。

**Topics**
+ [Microsoft SignTool を使用したクライアント SDK 5](signtool-sdk5.md)
+ [Microsoft SignTool を使用したクライアント SDK 3](signtool-sdk3.md)

# クライアント SDK 5 で Microsoft SignTool を使用してファイルに署名する
<a name="signtool-sdk5"></a>

暗号化やパブリックキー基盤 (PKI) では、デジタル署名は、データが信頼されたエンティティより送信されたことを確認することを目的として使用されます。署名は、データが送信中に改ざんされていないことも示します。署名とは、送信者のプライベートキーを使用して生成された暗号化ハッシュを指します。受信者は、ハッシュ署名を送信者のパブリックキーで復号することで、データの整合性を検証できます。また、送信者は、デジタル証明書を管理する責任があります。デジタル証明書は、送信者のプライベートキーの所有者を証明し、復号に必要なパブリックキーを受信者に渡します。プライベートキーが送信者によって所有されている限り、署名は信頼できます。 は、これらのキーを排他的なシングルテナントアクセスで保護するために、安全な FIPS 140-2 レベル 3 検証済みハードウェア AWS CloudHSM を提供します。

Microsoft SignTool は、ファイルに対して署名、検証、タイムスタンプ付与を行うコマンドラインツールであり、多くの組織で使用されています。 AWS CloudHSM を使用して、SignTool で必要になるまでキーペアを安全に保存できるため、データに署名するためのワークフローを簡単に自動化できます。

以下のトピックでは、 で SignTool を使用する方法の概要を説明します AWS CloudHSM。

**Topics**
+ [ステップ 1: 前提条件の設定](#signtool-sdk5-prereqs)
+ [ステップ 2: 署名用証明書を作成する](#signtool-sdk5-csr)
+ [ステップ 3: ファイルに署名する](#signtool-sdk5-sign)

## ステップ 1: 前提条件の設定
<a name="signtool-sdk5-prereqs"></a>

で Microsoft SignTool を使用するには AWS CloudHSM、以下が必要です。
+ Windows オペレーティングシステムが実行されている Amazon EC2 クライアントインスタンス。
+ 認証局 (CA)。自己管理、またはサードパーティープロバイダーが作成したもの。
+ EC2 インスタンスと同じ仮想パブリッククラウド (VPC) 内のアクティブな AWS CloudHSM クラスター。クラスターには、少なくとも 1 つの HSM が存在している必要があります。
+  AWS CloudHSM クラスター内のキーを所有および管理するための Crypto User (CU)。
+ 未署名のファイルまたは実行可能ファイル。
+ Microsoft Windows Software Development Kit (SDK)。

**Windows SignTool AWS CloudHSM で を使用するための前提条件を設定するには**

1. このガイドの「[開始方法](getting-started.md)」セクションの指示に従って、Windows EC2 インスタンスと AWS CloudHSM クラスターを起動します。

1. 独自の Windows Server CA をホストする場合は、「 [で Windows Server を認証機関として設定 AWS CloudHSM](win-ca-overview-sdk5.md)する」のステップ 1 と 2 に従います。それ以外の場合は、公的に信頼されたサードパーティーの CA をそのまま使用します。

1. 次のバージョンの Microsoft Windows SDK を Windows EC2 インスタンスにダウンロードしてインストールします。
   + [Microsoft Windows SDK 10](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk)
   + [Microsoft Windows SDK 8.1](https://developer.microsoft.com/en-us/windows/downloads/windows-8-1-sdk)
   + [Microsoft Windows SDK 7](https://www.microsoft.com/en-us/download/details.aspx?id=8279)

   `SignTool` 実行可能ファイルは、デスクトップアプリケーションのインストール機能用の Windows SDK Signing Tool に含まれます。不要な場合は、他の機能をインストール対象から除外することができます。デフォルトのインストール場所は次のとおりです。

   ```
   C:\Program Files (x86)\Windows Kits\<SDK version>\bin\<version number>\<CPU architecture>\signtool.exe
   ```

Microsoft Windows SDK、 AWS CloudHSM クラスター、および CA を使用して[署名証明書を作成](#signtool-sdk5-csr)できるようになりました。

## ステップ 2: 署名用証明書を作成する
<a name="signtool-sdk5-csr"></a>

EC2 インスタンスに Windows SDK をダウンロードしたら、これを使用して証明書署名リクエスト (CSR) を生成することができます。CSR は、未署名の証明書であり、署名用に最終的に CA に渡されます。この例では、Windows SDK に含まれる`certreq` 実行可能ファイルを使用して、CSR を生成します。

**`certreq` 実行可能ファイルを使用して CSR を生成するには**

1. Windows EC2 インスタンスに接続されていない場合は、接続します。詳細については、「Amazon EC2 ユーザーガイド」の「[インスタンスに接続する](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows)」を参照してください。**

1. 以下の行に含まれる `request.inf` ファイルを作成します。`Subject` 情報をお客様の組織の情報に置き換えます。各パラメータの説明については、「[Microsoft のドキュメント](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certreq_1#BKMK_New)」を参照してください。

   ```
   [Version]
   Signature= $Windows NT$
   [NewRequest]
   Subject = "C=<Country>,CN=<www.website.com>,O=<Organization>,OU=<Organizational-Unit>,L=<City>,S=<State>"
   RequestType=PKCS10
   HashAlgorithm = SHA256
   KeyAlgorithm = RSA
   KeyLength = 2048
   ProviderName = "CloudHSM Key Storage Provider"
   KeyUsage = "CERT_DIGITAL_SIGNATURE_KEY_USAGE"
   MachineKeySet = True
   Exportable = False
   ```

1. `certreq.exe` を実行します。この例では、CSR を `request.csr` として保存します。

   ```
   certreq.exe -new request.inf request.csr
   ```

   内部的には、 AWS CloudHSM クラスターに新しいキーペアが生成され、そのペアのプライベートキーを使用して CSR が作成されます。

1. CA に CSR を送ります。Windows Server CA を使用している場合は、次のステップを行います。

   1. 次のコマンドを入力して、CA ツールを開きます。

      ```
      certsrv.msc
      ```

   1. 新しいウィンドウで、CA サーバーの名前を右クリックします。[**すべてのタスク**]、[**Submit new request (新しいリクエストの送信)**] の順に選択します。

   1. `request.csr` の場所に移動し、[**開く**] を選択します。

   1. **サーバー CA** メニューから、[**保留中のリクエスト**] フォルダを表示します。先ほど作成したリクエストを右クリックし、[**すべてのタスク**] で [**問題**] を選択します。

   1. [**Issued Certificates (発行済みの証明書)**] フォルダ ([**保留中のリクエスト**] フォルダの上) に移動します。

   1. [**開く**] を選択して証明書を表示し、[**詳細**] タブを選択します。

   1. [**Copy to File (ファイルにコピー)**] を選択して、証明書のエクスポートウィザードを起動します。DER でエンコードされた X.509 ファイルを `signedCertificate.cer` として安全な場所に保存します。

   1. CA ツールを終了し、次のコマンドを使用して、証明書ファイルを Windows の Personal Certificate Store に移動します。他のアプリケーションで使用できます。

      ```
      certreq.exe -accept signedCertificate.cer
      ```

これで、インポートしたファイルを使用して、[ファイルに署名する](#signtool-sdk5-sign) ことができます。

## ステップ 3: ファイルに署名する
<a name="signtool-sdk5-sign"></a>

これで、SignTool と、インポートした証明書を使用して、サンプルファイルに署名することができます。そのためには、証明書の SHA-1 ハッシュ、または*サムプリント*を把握しておく必要があります。サムプリントを使用することで、 AWS CloudHSMによって検証された証明書のみ SignTool で使用されるようできます。この例では、PowerShell を使用して証明書のハッシュを取得します。また、CA の GUI または Windows SDK の `certutil` 実行可能ファイルを使用することもできます。

**証明書のサムプリントを取得し、それを使用してファイルに署名するには**

1. 管理者として PowerShell を開き、次のコマンドを実行します。

   ```
   Get-ChildItem -path cert:\LocalMachine\My
   ```

   返った `Thumbprint` をコピーします。  
![\[証明書のハッシュは、サムプリントとして返ります\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/images/signtool-hash.png)

1. `SignTool.exe` がある PowerShell 内のディレクトリに移動します。デフォルトの場所は `C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64` です。

1. 最後に、次のコマンドを実行してファイルに署名します。コマンドが正常に実行されると、PowerShell より成功のメッセージが返ります。

   ```
   signtool.exe sign /v /fd sha256 /sha1 <thumbprint> /sm C:\Users\Administrator\Desktop\<test>.ps1
   ```  
![\[.ps1 ファイルに正常に証明されました。\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/images/signtool-last-command.png)

1. (オプション) ファイルの署名を検証するには、次のコマンドを使用します。

   ```
   signtool.exe verify /v /pa C:\Users\Administrator\Desktop\<test>.ps1
   ```

# クライアント SDK 3 で Microsoft SignTool を使用してファイルに署名する
<a name="signtool-sdk3"></a>

暗号化やパブリックキー基盤 (PKI) では、デジタル署名は、データが信頼されたエンティティより送信されたことを確認することを目的として使用されます。署名は、データが送信中に改ざんされていないことも示します。署名とは、送信者のプライベートキーを使用して生成された暗号化ハッシュを指します。受信者は、ハッシュ署名を送信者のパブリックキーで復号することで、データの整合性を検証できます。また、送信者は、デジタル証明書を管理する責任があります。デジタル証明書は、送信者のプライベートキーの所有者を証明し、復号に必要なパブリックキーを受信者に渡します。プライベートキーが送信者によって所有されている限り、署名は信頼できます。 は、これらのキーを排他的なシングルテナントアクセスで保護するために、安全な FIPS 140-2 レベル 3 検証済みハードウェア AWS CloudHSM を提供します。

Microsoft SignTool は、ファイルに対して署名、検証、タイムスタンプ付与を行うコマンドラインツールであり、多くの組織で使用されています。 AWS CloudHSM を使用して、SignTool で必要になるまでキーペアを安全に保存できるため、データに署名するためのワークフローを簡単に自動化できます。

以下のトピックでは、 で SignTool を使用する方法の概要を説明します AWS CloudHSM。

**Topics**
+ [ステップ 1: 前提条件の設定](#signtool-sdk3-prereqs)
+ [ステップ 2: 署名用証明書を作成する](#signtool-sdk3-csr)
+ [ステップ 3: ファイルに署名する](#signtool-sdk3-sign)

## ステップ 1: 前提条件の設定
<a name="signtool-sdk3-prereqs"></a>

で Microsoft SignTool を使用するには AWS CloudHSM、以下が必要です。
+ Windows オペレーティングシステムが実行されている Amazon EC2 クライアントインスタンス。
+ 認証局 (CA)。自己管理、またはサードパーティープロバイダーが作成したもの。
+ EC2 インスタンスと同じ仮想パブリッククラウド (VPC) 内のアクティブな AWS CloudHSM クラスター。クラスターには、少なくとも 1 つの HSM が存在している必要があります。
+  AWS CloudHSM クラスター内のキーを所有および管理するための Crypto User (CU)。
+ 未署名のファイルまたは実行可能ファイル。
+ Microsoft Windows Software Development Kit (SDK)。

**Windows SignTool AWS CloudHSM で を使用するための前提条件を設定するには**

1. このガイドの「[開始方法](getting-started.md)」セクションの指示に従って、Windows EC2 インスタンスと AWS CloudHSM クラスターを起動します。

1. 独自の Windows Server CA をホストする場合は、「 [で Windows Server を認証機関として設定 AWS CloudHSM](win-ca-overview-sdk3.md)する」のステップ 1 と 2 に従います。それ以外の場合は、公的に信頼されたサードパーティーの CA をそのまま使用します。

1. 次のバージョンの Microsoft Windows SDK を Windows EC2 インスタンスにダウンロードしてインストールします。
   + [Microsoft Windows SDK 10](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk)
   + [Microsoft Windows SDK 8.1](https://developer.microsoft.com/en-us/windows/downloads/windows-8-1-sdk)
   + [Microsoft Windows SDK 7](https://www.microsoft.com/en-us/download/details.aspx?id=8279)

   `SignTool` 実行可能ファイルは、デスクトップアプリケーションのインストール機能用の Windows SDK Signing Tool に含まれます。不要な場合は、他の機能をインストール対象から除外することができます。デフォルトのインストール場所は次のとおりです。

   ```
   C:\Program Files (x86)\Windows Kits\<SDK version>\bin\<version number>\<CPU architecture>\signtool.exe
   ```

Microsoft Windows SDK、 AWS CloudHSM クラスター、および CA を使用して[署名証明書を作成](#signtool-sdk3-csr)できるようになりました。

## ステップ 2: 署名用証明書を作成する
<a name="signtool-sdk3-csr"></a>

EC2 インスタンスに Windows SDK をダウンロードしたら、これを使用して証明書署名リクエスト (CSR) を生成することができます。CSR は、未署名の証明書であり、署名用に最終的に CA に渡されます。この例では、Windows SDK に含まれる`certreq` 実行可能ファイルを使用して、CSR を生成します。

**`certreq` 実行可能ファイルを使用して CSR を生成するには**

1. Windows EC2 インスタンスに接続されていない場合は、接続します。詳細については、「Amazon EC2 ユーザーガイド」の「[インスタンスに接続する](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows)」を参照してください。**

1. 以下の行に含まれる `request.inf` ファイルを作成します。`Subject` 情報をお客様の組織の情報に置き換えます。各パラメータの説明については、「[Microsoft のドキュメント](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certreq_1#BKMK_New)」を参照してください。

   ```
   [Version]
   Signature= $Windows NT$
   [NewRequest]
   Subject = "C=<Country>,CN=<www.website.com>,O=<Organization>,OU=<Organizational-Unit>,L=<City>,S=<State>"
   RequestType=PKCS10
   HashAlgorithm = SHA256
   KeyAlgorithm = RSA
   KeyLength = 2048
   ProviderName = "Cavium Key Storage Provider"
   KeyUsage = "CERT_DIGITAL_SIGNATURE_KEY_USAGE"
   MachineKeySet = True
   Exportable = False
   ```

1. `certreq.exe` を実行します。この例では、CSR を `request.csr` として保存します。

   ```
   certreq.exe -new request.inf request.csr
   ```

   内部的には、 AWS CloudHSM クラスターに新しいキーペアが生成され、そのペアのプライベートキーを使用して CSR が作成されます。

1. CA に CSR を送ります。Windows Server CA を使用している場合は、次のステップを行います。

   1. 次のコマンドを入力して、CA ツールを開きます。

      ```
      certsrv.msc
      ```

   1. 新しいウィンドウで、CA サーバーの名前を右クリックします。[**すべてのタスク**]、[**Submit new request (新しいリクエストの送信)**] の順に選択します。

   1. `request.csr` の場所に移動し、[**開く**] を選択します。

   1. **サーバー CA** メニューから、[**保留中のリクエスト**] フォルダを表示します。先ほど作成したリクエストを右クリックし、[**すべてのタスク**] で [**問題**] を選択します。

   1. [**Issued Certificates (発行済みの証明書)**] フォルダ ([**保留中のリクエスト**] フォルダの上) に移動します。

   1. [**開く**] を選択して証明書を表示し、[**詳細**] タブを選択します。

   1. [**Copy to File (ファイルにコピー)**] を選択して、証明書のエクスポートウィザードを起動します。DER でエンコードされた X.509 ファイルを `signedCertificate.cer` として安全な場所に保存します。

   1. CA ツールを終了し、次のコマンドを使用して、証明書ファイルを Windows の Personal Certificate Store に移動します。他のアプリケーションで使用できます。

      ```
      certreq.exe -accept signedCertificate.cer
      ```

これで、インポートしたファイルを使用して、[ファイルに署名する](#signtool-sdk3-sign) ことができます。

## ステップ 3: ファイルに署名する
<a name="signtool-sdk3-sign"></a>

これで、SignTool と、インポートした証明書を使用して、サンプルファイルに署名することができます。そのためには、証明書の SHA-1 ハッシュ、または*サムプリント*を把握しておく必要があります。サムプリントを使用することで、 AWS CloudHSMによって検証された証明書のみ SignTool で使用されるようできます。この例では、PowerShell を使用して証明書のハッシュを取得します。また、CA の GUI または Windows SDK の `certutil` 実行可能ファイルを使用することもできます。

**証明書のサムプリントを取得し、それを使用してファイルに署名するには**

1. 管理者として PowerShell を開き、次のコマンドを実行します。

   ```
   Get-ChildItem -path cert:\LocalMachine\My
   ```

   返った `Thumbprint` をコピーします。  
![\[証明書のハッシュは、サムプリントとして返ります\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/images/signtool-hash.png)

1. `SignTool.exe` がある PowerShell 内のディレクトリに移動します。デフォルトの場所は `C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64` です。

1. 最後に、次のコマンドを実行してファイルに署名します。コマンドが正常に実行されると、PowerShell より成功のメッセージが返ります。

   ```
   signtool.exe sign /v /fd sha256 /sha1 <thumbprint> /sm C:\Users\Administrator\Desktop\<test>.ps1
   ```  
![\[.ps1 ファイルに正常に証明されました。\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/images/signtool-last-command.png)

1. (オプション) ファイルの署名を検証するには、次のコマンドを使用します。

   ```
   signtool.exe verify /v /pa C:\Users\Administrator\Desktop\<test>.ps1
   ```