

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 驗證叢集 HSM in AWS CloudHSM （選用） 的身分和真偽
<a name="verify-hsm-identity"></a>

若要在 中初始化叢集 AWS CloudHSM，您可以簽署叢集第一個硬體安全模組 (HSM) 產生的憑證簽署請求 (CSR)。在這樣做之前，您可能需要驗證 HSM 的身分和真偽。

**注意**  
此為選用程序。然而只在叢集初始化之前適用。叢集初始化之後，您就無法使用此程序來取得憑證或驗證 HSM。

若要驗證叢集第一個 HSM 的身分，請完成以下步驟：

1. [取得憑證和 CSR](#get-certificates)：在此步驟中，您從 HSM 取得三個憑證和一個 CSR。您也可以取得兩個根憑證，一個來自 HSM 硬體製造商 AWS CloudHSM ，另一個來自 HSM 硬體製造商。

1. [驗證憑證鏈](#verify-certificate-chains) – 在此步驟中，您會建構兩個憑證鏈，一個是 AWS CloudHSM 根憑證，另一個是製造商根憑證。然後，您可以使用這些憑證鏈驗證 HSM 憑證，以確定 AWS CloudHSM 和硬體製造商都證明 HSM 的身分和真實性。

1. [比較公有金鑰](#compare-public-keys)：在此步驟中，您擷取並比較 HSM 憑證和叢集 CSR 中的公有金鑰，以確保金鑰相同。這樣可讓您確信 CSR 是由真實可信任的 HSM 所產生。

下圖顯示 CSR、憑證及其相互關係。後續清單定義每個憑證。

![\[HSM 憑證和其關係。\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/hsm-certificate-relationships.png)


**AWS 根憑證**  
這是 AWS CloudHSM根憑證。

**製造商根憑證**  
這是硬體製造商的根憑證。

**AWS 硬體憑證**  
AWS CloudHSM 會在 HSM 硬體新增至機群時建立此憑證。此憑證宣告 AWS CloudHSM 擁有硬體。

**製造商硬體憑證**  
HSM 硬體製造商在製造 HSM 硬體時建立此憑證。此憑證聲明製造商建立此硬體。

**HSM 憑證**  
當您在叢集中建立第一個 HSM 時，通過 FIPS 驗證的硬體會產生 HSM 憑證。此憑證聲明 HSM 硬體建立此 HSM。

**叢集 CSR**  
第一個 HSM 建立叢集 CSR。當您[簽署叢集 CSR](initialize-cluster.md#sign-csr) 時，您即宣稱擁有叢集。然後，您可以使用已簽署的 CSR 來[初始化叢集](initialize-cluster.md#initialize)。

## 步驟 1. 從 HSM 取得憑證
<a name="get-certificates"></a>

若要驗證 HSM 的身分和真偽，請先取得一個 CSR 和 5 個 HSM。您可以從 HSM 取得三個憑證，您可以使用 [AWS CloudHSM 主控台](https://console.aws.amazon.com/cloudhsm/)、 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) 或 AWS CloudHSM API 來執行。

------
#### [ Console ]

**取得 CSR 和 HSM 憑證 (主控台)**

1. 在 https：//[https://console.aws.amazon.com/cloudhsm/home](https://console.aws.amazon.com/cloudhsm/home) 開啟 AWS CloudHSM 主控台。

1. 選取您要驗證的 HSM 叢集 ID 旁的選項按鈕。

1. 選取**動作**。從下拉式功能表中，選擇**初始化**。

1. 如果您未完成[上一個步驟](create-hsm.md)來建立 HSM，請為您正在建立的 HSM 選擇一個可用區域 (AZ)。然後選取**建立**。

1. 當憑證和 CSR 準備好時，您會看到下載連結。  
![\[AWS CloudHSM 主控台中的下載憑證簽署請求頁面。\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/download-csr-hsm-cert.png)

1. 選擇每個連結來下載和儲存 CSR 和憑證。為了簡化後續步驟，請將所有檔案儲存到相同目錄，並使用預設的檔案名稱。

------
#### [ AWS CLI ]

**取得 CSR 和 HSM 憑證 ([AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/))**
+ 在命令提示字元中，執行 **[describe-clusters](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/describe-clusters.html)** 命令四次，每次都擷取 CSR 和不同的憑證，並將其儲存到檔案。

  1. 發出下列命令來擷取叢集 CSR。將 *<cluster ID>* 取代為您先前建立的叢集 ID。

     ```
     $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \
                                        --output text \
                                        --query 'Clusters[].Certificates.ClusterCsr' \
                                        > <cluster ID>_ClusterCsr.csr
     ```

  1. 發出下列命令來擷取 HSM 憑證。將 *<cluster ID>* 取代為您先前建立的叢集 ID。

     ```
     $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \
                                        --output text \
                                        --query 'Clusters[].Certificates.HsmCertificate' \
                                        > <cluster ID>_HsmCertificate.crt
     ```

  1. 發出下列命令來擷取 AWS 硬體憑證。將 *<cluster ID>* 取代為您先前建立的叢集 ID。

     ```
     $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \
                                        --output text \
                                        --query 'Clusters[].Certificates.AwsHardwareCertificate' \
                                        > <cluster ID>_AwsHardwareCertificate.crt
     ```

  1. 發出下列命令來擷取製造商硬體憑證。將 *<cluster ID>* 取代為您先前建立的叢集 ID。

     ```
     $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \
                                        --output text \
                                        --query 'Clusters[].Certificates.ManufacturerHardwareCertificate' \
                                        > <cluster ID>_ManufacturerHardwareCertificate.crt
     ```

------
#### [ AWS CloudHSM API ]

**取得 CSR 和 HSM 憑證 (AWS CloudHSM API)**
+ 傳送 [https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) 請求，然後從回應中擷取並儲存 CSR 和憑證。

------

## 步驟 2. 取得根憑證
<a name="get-root-certificates"></a>

請依照下列步驟取得 AWS CloudHSM 和 製造商的根憑證。將根憑證檔案儲存到包含 CSR 和 HSM 憑證檔案的目錄。

**取得 AWS CloudHSM 和製造商根憑證**

1. 下載 AWS CloudHSM 根憑證：[AWS\$1CloudHSM\$1Root-G1.zip](samples/AWS_CloudHSM_Root-G1.zip)

1. 為您的 HSM 類型下載正確的製造商根憑證：
   + hsm1.medium 製造商根憑證：[liquid\$1security\$1certificate.zip](https://www.marvell.com/content/dam/marvell/en/public-collateral/security-solutions/liquid_security_certificate.zip)
   + hsm2m.medium 製造商根憑證：[liquid\$1security\$1certificate.zip](https://www.marvell.com/content/dam/marvell/en/public-collateral/security-solutions/liquidsecurity2_ar_v1.zip)
**注意**  
若要從其登陸頁面下載每個憑證，請使用下列連結：  
hsm1.medium [製造商根憑證](https://www.marvell.com/products/security-solutions/liquid-security-hsm-adapters-and-appliances/liquidsecurity-certificate.html)的登陸頁面
hsm2m.medium [製造商根憑證](https://www.marvell.com/products/security-solutions/nitrox-hs-adapters/liquidsecurity2-certificate-ls2-g-axxx-ar-f-bo-v1.html)的登陸頁面
您可能需要用滑鼠右鍵按一下 **Download Certificate (下載憑證)** 連結，然後選擇 **Save Link As...(另存連結為...)** 以儲存憑證檔案。

1. 下載檔案之後，將其內容解壓縮 (unzip)。

## 步驟 3。驗證憑證鏈
<a name="verify-certificate-chains"></a>

在此步驟中，您會建構兩個憑證鏈，一個是 AWS CloudHSM 根憑證，另一個是製造商根憑證。然後，使用 OpenSSL 根據每個憑證鏈來驗證 HSM 憑證。

若要建立憑證鏈，請開啟 Linux shell。您需要 OpenSSL (大多數的 Linux shell 中都有)，還需要有您下載的[根憑證](#get-root-certificates)和 [HSM 憑證檔案](#get-certificates)。不過，您不需要此步驟 AWS CLI 的 ，而且 shell 不需要與 AWS 您的帳戶建立關聯。

**使用 AWS CloudHSM 根憑證驗證 HSM 憑證**

1. 導覽至您下載的[根憑證](#get-root-certificates)和 [HSM 憑證檔案](#get-certificates)的儲存目錄。以下命令假設所有憑證都在目前的目錄中，且使用預設的檔案名稱。

   使用下列命令，依該順序建立包含 AWS 硬體憑證和 AWS CloudHSM 根憑證的憑證鏈。將 *<cluster ID>* 取代為您先前建立的叢集 ID。

   ```
   $ cat <cluster ID>_AwsHardwareCertificate.crt \
         AWS_CloudHSM_Root-G1.crt \
         > <cluster ID>_AWS_chain.crt
   ```

1. 使用下列 OpenSSL 命令，根據 AWS 憑證鏈來驗證 HSM 憑證。將 *<cluster ID>* 取代為您先前建立的叢集 ID。

   ```
   $ openssl verify -CAfile <cluster ID>_AWS_chain.crt <cluster ID>_HsmCertificate.crt
   <cluster ID>_HsmCertificate.crt: OK
   ```

**根據製造商根憑證來驗證 HSM 憑證**

1. 使用下列命令來建立憑證鏈，其中依序包含製造商硬體憑證和製造商根憑證。將 *<cluster ID>* 取代為您先前建立的叢集 ID。

   ```
   $ cat <cluster ID>_ManufacturerHardwareCertificate.crt \
         liquid_security_certificate.crt \
         > <cluster ID>_manufacturer_chain.crt
   ```

1. 使用以下 OpenSSL 命令，根據製造商憑證鏈來驗證 HSM 憑證。將 *<cluster ID>* 取代為您先前建立的叢集 ID。

   ```
   $ openssl verify -CAfile <cluster ID>_manufacturer_chain.crt <cluster ID>_HsmCertificate.crt
   <cluster ID>_HsmCertificate.crt: OK
   ```

## 步驟 4. 擷取和比較公有金鑰
<a name="compare-public-keys"></a>

使用 OpenSSL 來擷取並比較 HSM 憑證和叢集 CSR 中的公有金鑰，以確保金鑰相同。

若要比較公有金鑰，請使用 Linux shell。您需要 OpenSSL，其可在大多數 Linux shell 中使用，但此步驟不需要 AWS CLI 。shell 不需要與 AWS 您的帳戶建立關聯。

**擷取和比較公有金鑰**

1. 使用下列命令從 HSM 憑證中擷取公有金鑰。

   ```
   $ openssl x509 -in <cluster ID>_HsmCertificate.crt -pubkey -noout > <cluster ID>_HsmCertificate.pub
   ```

1. 使用下列命令從叢集 CSR 中擷取公有金鑰。

   ```
   $ openssl req -in <cluster ID>_ClusterCsr.csr -pubkey -noout > <cluster ID>_ClusterCsr.pub
   ```

1. 使用下列命令來比較公有金鑰。如果公有金鑰相同，以下命令不會產生任何輸出。

   ```
   $ diff <cluster ID>_HsmCertificate.pub <cluster ID>_ClusterCsr.pub
   ```

驗證 HSM 的身分和真偽之後，請繼續[初始化叢集](initialize-cluster.md)。