初始化集群 - AWS CloudHSM

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

初始化集群

完成以下主题中的步骤以初始化您的 AWS CloudHSM 集群。

注意

初始化集群之前,请审核流程,从而验证 HSM 的身份和真实性。此过程是可选的,并且仅在初始化集群之前有效。初始化集群后,您不能使用此过程来获取证书或验证 HSM。

获取集群 CSR

在初始化集群之前,您必须先下载并签署由集群的第一个 HSM 生成的证书签名请求 (CSR)。如果您按照步骤操作来验证您集群的 HSM 的身份,则您已有 CSR 并可以签署。否则,请立即使用AWS CloudHSM 控制台AWS Command Line Interface (AWS CLI) 或 AWS CloudHSM API 获取 CSR。

重要

要初始化集群,您的信任锚必须符合 RFC 5280 并满足以下要求:

  • 如果使用 X509v3 扩展,则必须存在 X509v3 基本约束扩展。

  • 信任锚必须是自签名证书。

  • 扩展值不能相互冲突。

获取 CSR (控制台)
  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。

获取 CSR (AWS CLI)
  • 在命令提示符处,运行以下 describe-clusters 命令,该命令将提取 CSR 并将其保存到文件。将 <cluster ID> 替换为您之前创建的群集的 ID。

    $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \ --output text \ --query 'Clusters[].Certificates.ClusterCsr' \ > <cluster ID>_ClusterCsr.csr
获取企业社会责任 (AWS CloudHSM API)
  1. 发送 DescribeClusters 请求。

  2. 从响应中提取并保存 CSR。

签署 CSR

目前,您必须创建自签名的签名证书,并使用它来签署您的集群的 CSR。您不需要执行 AWS CLI 此步骤,也无需将外壳与您的 AWS 账户关联。要签署 CSR,您必须执行以下操作:

  1. 完成上一节(请参阅 获取集群 CSR)。

  2. 创建私有密钥。

  3. 使用私有密钥创建签名证书。

  4. 签署您的集群 CSR。

创建私有密钥

注意

对于生产集群,您将要创建的密钥应使用可信的随机掩码以安全的方式创建。建议您使用安全的异地和离线 HSM 或等效对象。安全地存储密钥。密钥用于建立集群身份以及您对集群所包含的 HSM 的唯一控制权。

在开发和测试期间,您可以使用任何方便的工具 (如 OpenSSL) 来创建和签署集群证书。以下示例为您展示了如何创建密钥。使用密钥创建自签名证书 (见下文) 之后,您应该以安全的方式将其存储起来。要登录您的 AWS CloudHSM 实例,证书必须存在,但私钥不存在。

使用以下命令创建私有密钥。初始化 AWS CloudHSM 集群时,必须使用 RSA 2048 证书或 RSA 4096 证书。

$ openssl genrsa -aes256 -out customerCA.key 2048 Generating RSA private key, 2048 bit long modulus ........+++ ............+++ e is 65537 (0x10001) Enter pass phrase for customerCA.key: Verifying - Enter pass phrase for customerCA.key:

使用私有密钥创建自签名证书

您用来为生产集群创建私有密钥的可信硬件还应提供软件工具,以使用该密钥生成自签名证书。以下示例使用 OpenSSL 和您在上一步中创建的私有密钥创建签名证书。该证书的有效期为 10 年 (3652 天)。阅读屏幕上的说明,并按照提示操作。

$ openssl req -new -x509 -days 3652 -key customerCA.key -out customerCA.crt Enter pass phrase for customerCA.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []:

完成后,此命令将创建一个名为 customerCA.crt 的证书文件。将此证书放在要连接到 AWS CloudHSM 集群的每台主机上。如果您为文件指定了不同的名称或将其存储在与主机根不同的路径,则应相应地编辑客户端配置文件。使用您刚创建的证书和私有密钥,在下一步中签署集群证书签名请求 (CSR)。

签署集群 CSR

您用来为生产集群创建私有密钥的可信硬件还应提供工具,以使用该密钥签署 CSR。以下示例使用 OpenSSL 来签署集群的 CSR。该示例使用您在上一步中创建的私有密钥和自签名证书。

$ openssl x509 -req -days 3652 -in <cluster ID>_ClusterCsr.csr \ -CA customerCA.crt \ -CAkey customerCA.key \ -CAcreateserial \ -out <cluster ID>_CustomerHsmCertificate.crt Signature ok subject=/C=US/ST=CA/O=Cavium/OU=N3FIPS/L=SanJose/CN=HSM:<HSM identifer>:PARTN:<partition number>, for FIPS mode Getting CA Private Key Enter pass phrase for customerCA.key:

完成后,此命令将创建一个名为 <cluster ID>_CustomerHsmCertificate.crt 的文件。在初始化集群时,将此文件用作签名证书。

初始化集群

使用已签名 HSM 证书和您的签名证书来初始化集群。您可以使用AWS CloudHSM 控制台AWS CLI、或 AWS CloudHSM API。

初始化群集(控制台)
  1. 打开 AWS CloudHSM 控制台,网址为 https://console.aws.amazon.com/cloudhsm/home

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

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

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

  5. 下载证书签名请求页面上,选择下一步。如果下一步不可用,请先选择一个 CSR 或证书链接。然后选择下一步

  6. 签署证书签名请求(CSR)页面上,选择下一步

  7. 上传证书页面上,执行以下操作:

    1. 集群证书旁边,选择上传文件。然后找到并选中您之前签署的 HSM 证书。如果您完成了以上部分中的步骤,请选择名为 <cluster ID>_CustomerHsmCertificate.crt 的文件。

    2. 颁发证书旁边,选择上传文件。然后,选择您的签名证书。如果您完成了以上部分中的步骤,请选择名为 customerCA.crt 的文件。

    3. 选择上传并初始化

初始化群集 (AWS CLI)
  • 在命令提示符下,运行 initialize-cluster 命令。提供以下项:

    • 您之前创建的集群的 ID。

    • 您之前签署的 HSM 证书。如果您完成了以上部分中的步骤,它保存在名为 <cluster ID>_CustomerHsmCertificate.crt 的文件中。

    • 您的签名证书。如果您完成了以上部分中的步骤,签名证书保存在名为 customerCA.crt 的文件中。

    $ aws cloudhsmv2 initialize-cluster --cluster-id <cluster ID> \ --signed-cert file://<cluster ID>_CustomerHsmCertificate.crt \ --trust-anchor file://customerCA.crt { "State": "INITIALIZE_IN_PROGRESS", "StateMessage": "Cluster is initializing. State will change to INITIALIZED upon completion." }
初始化集群 (AWS CloudHSM API)
  • 使用以下内容发送 InitializeCluster 请求:

    • 您之前创建的集群的 ID。

    • 您之前签署的 HSM 证书。

    • 您的签名证书。