验证集群的 HSM 的身份和真实性 (可选) - AWS CloudHSM

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

验证集群的 HSM 的身份和真实性 (可选)

要初始化您的群集,请签署由群集的第一个 HSM 生成的证书签名请求 (CSR)。在执行此操作之前,您可能需要验证 HSM 的身份和真实性。

注意

此过程是可选过程。但是,它仅在初始化群集之前有效。初始化群集后,您不能使用此过程来获取证书或验证 HSM。

概述

要验证群集的第一个 HSM 的身份,请完成以下步骤:

  1. 获取证书和 CSR - 在此步骤中,您将从 HSM 获取三个证书和一个 CSR。您还将获得两个根证书,一个来自 HSM 硬件制造商 AWS CloudHSM ,一个来自 HSM 硬件制造商。

  2. 验证证书链 — 在此步骤中,您将构造两个证书链,一个指向 AWS CloudHSM 根证书,另一个指向制造商根证书。然后,您使用这些证书链验证 HSM 证书,以确定该证书 AWS CloudHSM 和硬件制造商都证明 HSM 的身份和真实性。

  3. 比较公有密钥 - 在此步骤中,您将提取并比较 HSM 证书和集群 CSR 中的公有密钥以确保二者相同。这将使您坚信 CSR 是由真实可信的 HSM 生成的。

下图显示了 CSR、证书及其相互关系。后续列表定义了每个证书。

HSM 证书及其关系。
AWS 根证书

AWS CloudHSM这是根证书。

制造商根证书

这是硬件制造商的根证书。

AWS 硬件证书

AWS CloudHSM 在将 HSM 硬件添加到队列时创建了此证书。此证书声明自己 AWS CloudHSM 拥有硬件。

制造商硬件证书

HSM 硬件制造商在制造 HSM 硬件时已创建此证书。此证书声明制造商创建了该硬件。

HSM 证书

HSM 证书在您创建群集中的第一个 HSM 时由经 FIPS 验证的硬件生成。此证书声明 HSM 硬件已创建 HSM。

群集 CSR

第一个 HSM 将创建群集 CSR。在对群集 CSR 进行签名时,您将声明群集。然后,您可以使用已签名 CSR 初始化群集

从 HSM 获取证书

要验证 HSM 的身份和真实性,请先获取 1 个 CSR 和 5 个证书。您可以从 HSM 获得其中三个证书,您可以使用AWS CloudHSM 控制台AWS Command Line Interface (AWS CLI) 或 AWS CloudHSM API 来完成。

获取 CSR 和 HSM 证书 (控制台)
  1. 打开 AWS CloudHSM 控制台,网址为 https://console.aws.amazon.com/cloudhsm/home

  2. 选中要验证的 HSM 的集群 ID 旁边的单选按钮。

  3. 选择操作。从下拉菜单中,选择初始化

  4. 如果您未完成旨在创建 HSM 的 上一步 操作,则请为正在创建的 HSM 选择可用区(AZ)。然后选择 创建

  5. 在证书和 CSR 准备就绪后,您将看到用于下载它们的链接。

    AWS CloudHSM 控制台中的下载证书签名请求页面。
  6. 选择用于下载和保存 CSR 和证书的每个链接。要简化后续步骤,请将所有文件保存到同一目录中,并使用默认文件名。

获取 CSR 和 HSM 证书 (AWS CLI)
  • 在命令提示符处,运行 describe-clusters 命令四次,每次提取 CSR 和不同的证书,然后将其保存到相应文件中。

    1. 发出以下命令以提取群集 CSR。将 <cluster ID> 替换为之前创建的群集的 ID。

      $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \ --output text \ --query 'Clusters[].Certificates.ClusterCsr' \ > <cluster ID>_ClusterCsr.csr
    2. 发出以下命令以提取 HSM 证书。将 <cluster ID> 替换为之前创建的群集的 ID。

      $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \ --output text \ --query 'Clusters[].Certificates.HsmCertificate' \ > <cluster ID>_HsmCertificate.crt
    3. 发出以下命令提取 AWS 硬件证书。将 <cluster ID> 替换为之前创建的群集的 ID。

      $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \ --output text \ --query 'Clusters[].Certificates.AwsHardwareCertificate' \ > <cluster ID>_AwsHardwareCertificate.crt
    4. 发出以下命令以提取制造商硬件证书。将 <cluster ID> 替换为之前创建的群集的 ID。

      $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \ --output text \ --query 'Clusters[].Certificates.ManufacturerHardwareCertificate' \ > <cluster ID>_ManufacturerHardwareCertificate.crt
获取 CSR 和 HSM 证书 (AWS CloudHSM API)
  • 发送 DescribeClusters 请求,然后从响应中提取并保存 CSR 和证书。

获取根证书

按照以下步骤获取 AWS CloudHSM 和制造商的根证书。将根证书文件保存到包含 CSR 和 HSM 证书文件的目录。

获取 AWS CloudHSM 和制造商根证书
  1. 下载 AWS CloudHSM 根证书:AWS_CloudHSM_Root-G1.zip

  2. 下载适合您的 HSM 类型的制造商根证书:

    注意

    要从登录页面下载每份证书,请使用以下链接:

    您可能需要右键单击 Download Certificate 链接,然后选择 Save Link As... 才能保存证书文件。

  3. 在下载文件后,提取 (解压缩) 其内容。

验证证书链

在此步骤中,您将构造两个证书链,一个指向 AWS CloudHSM 根证书,另一个指向制造商根证书。然后使用 OpenSSL 通过每个证书链验证 HSM 证书。

要创建证书链,请打开 Linux shell。您需要 OpenSSL (在大多数 Linux shell 中可用),并且需要已下载的根证书HSM 证书文件。但是,您不需要执行 AWS CLI 此步骤,也无需将外壳与您的 AWS 账户关联。

使用 AWS CloudHSM 根证书验证 HSM 证书
  1. 导航到您将下载的根证书HSM 证书文件保存到的目录。以下命令假设所有证书都在当前目录中并使用默认文件名。

    使用以下命令按顺序创建包含 AWS 硬件证书和 AWS CloudHSM 根证书的证书链。将 <cluster ID> 替换为之前创建的群集的 ID。

    $ cat <cluster ID>_AwsHardwareCertificate.crt \ AWS_CloudHSM_Root-G1.crt \ > <cluster ID>_AWS_chain.crt
  2. 使用以下 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
  2. 使用以下 OpenSSL 命令通过制造商证书链验证 HSM 证书。将 <cluster ID> 替换为之前创建的群集的 ID。

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

提取和比较公有密钥

使用 OpenSSL 提取并比较 HSM 证书和群集 CSR 中的公有密钥以确保二者相同。

要比较公有密钥,请使用您的 Linux shell。你需要 OpenSSL,它在大多数 Linux 外壳中都可用,但此步骤 AWS CLI 不需要。外壳无需与您的 AWS 账户关联。

提取和比较公有密钥
  1. 使用以下命令可从 HSM 证书中提取公有密钥。

    $ openssl x509 -in <cluster ID>_HsmCertificate.crt -pubkey -noout > <cluster ID>_HsmCertificate.pub
  2. 使用以下命令可从群集 CSR 中提取公有密钥。

    $ openssl req -in <cluster ID>_ClusterCsr.csr -pubkey -noout > <cluster ID>_ClusterCsr.pub
  3. 使用以下命令可比较公有密钥。如果公有密钥相同,以下命令不会生成任何输出。

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

在验证 HSM 的身份和真实性后,请继续初始化集群