

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

# で Microsoft Manifest Generation and Editing Tool (Mage.exe) AWS CloudHSM を使用してファイルに署名する
<a name="third-magetool"></a>

**注記**  
AWS CloudHSM は、Windows SDK for .NET Framework 4.8.1 以降に含まれている 64 ビット Mage ツールのみをサポートします。

以下のトピックでは、 で [ Mage.exe ](https://learn.microsoft.com/en-us/dotnet/framework/tools/mage-exe-manifest-generation-and-editing-tool) を使用する方法の概要を説明します AWS CloudHSM。

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

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

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

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

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

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

1. .NET Framework 4.8.1 以降向けの Microsoft Windows SDK を Windows EC2 インスタンスにダウンロードしてインストールします。
   + [Microsoft Windows SDK 10](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk)

   `mage.exe` 実行可能ファイルは Windows SDK ツールの一部です。デフォルトのインストール場所は次のとおりです。

   ```
   C:\Program Files (x86)\Windows Kits\{{<SDK version>}}\bin\{{<version number>}}\x64\Mage.exe
   ```

これらのステップを完了したら、Microsoft Windows SDK、 AWS CloudHSM クラスター、および CA を使用して[署名証明書を作成できます](#magetool-csr)。

## ステップ 2: 署名用証明書を作成する
<a name="magetool-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` 情報をお客様の組織の情報に置き換えます。

   ```
   [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
   ```

   各パラメータの説明については、「[Microsoft のドキュメント](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certreq_1#BKMK_New)」を参照してください。

1. `certreq.exe` を実行して 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. [**発行された証明書**] フォルダに移動します。

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

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

   1. CA ツールを終了し、次のコマンドを実行して、証明書ファイルを Windows の Personal Certificate Store に移動します。

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

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

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

Mage.exe とインポートした証明書を取得したため、ファイルに署名できます。証明書の SHA-1 ハッシュ (サムプリント**) を把握しておく必要があります。サムプリントにより、Mage.exe は AWS CloudHSMによって検証された証明書のみを使用します。この例では、PowerShell を使用して証明書のハッシュを取得します。

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

1. `mage.exe` が含まれているディレクトリに移動します。デフォルトの場所:

   ```
   C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8.1 Tools\x64
   ```

1. Mage.exe を使用してサンプルアプリケーションファイルを作成するには、次のコマンドを実行します。

   ```
   mage.exe -New Application -ToFile C:\Users\Administrator\Desktop\sample.application
   ```

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

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

   出力から `Thumbprint`、`Key Container`、`Provider` の値をコピーします。  
![証明書のハッシュは、出力にサムプリント、キーコンテナ、プロバイダーとして表示されます。](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/images/certstore-my-certificate.png)

1. 次のコマンドを実行してファイルに署名します。

   ```
   mage.exe -Sign -CertHash {{<thumbprint>}} -KeyContainer {{<keycontainer>}} -CryptoProvider {{<CloudHSM Key Storage Provider/Cavium Key Storage Provider>}} C:\Users\Administrator\Desktop\{{<sample.application>}}
   ```

   コマンドが正常に実行されると、PowerShell より成功のメッセージが返ります。

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

   ```
   mage.exe -Verify -CryptoProvider {{<CloudHSM Key Storage Provider/Cavium Key Storage Provider>}} C:\Users\Administrator\Desktop\{{<sample.application>}}
   ```