使用新的证书和私有密钥重新配置 SSL(可选) - AWS CloudHSM

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

使用新的证书和私有密钥重新配置 SSL(可选)

AWS CloudHSM 使用 SSL 证书建立与 HSM 的连接。安装客户端时包含默认的密钥和 SSL 证书。但是,您也可以创建和使用自己的密钥和 SSL 证书。请注意,您将需要在初始化customerCA.crt集群时创建的自签名证书 (使用私有密钥创建自签名证书)。

从较高的层面上说,这是一个两步过程:

  1. 首先,创建私有密钥,然后使用该密钥创建证书签名请求(CSR)。使用颁发证书(初始化集群时所创建的证书)签署 CSR。

  2. 接下来,使用配置工具将密钥和证书复制到相应的目录中。

创建密钥、CSR,然后签署 CSR

客户端软件开发工具包 3 或客户端软件开发工具包 5 的步骤相同。

使用新的证书和私有密钥重新配置 SSL
  1. 使用以下 OpenSSL 命令创建私有密钥:

    openssl genrsa -out ssl-client.key 2048 Generating RSA private key, 2048 bit long modulus ........+++ ............+++ e is 65537 (0x10001)
  2. 使用以下 OpenSSL 命令创建证书签名请求 (CSR)。系统将询问您有关您的证书的一系列问题。

    openssl req -new -sha256 -key ssl-client.key -out ssl-client.csr Enter pass phrase for ssl-client.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) [XX]: State or Province Name (full name) []: Locality Name (eg, city) [Default City]: Organization Name (eg, company) [Default Company Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []: Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
  3. 使用您在初始化集群时创建的 customerCA.crt 证书签署 CSR。

    openssl x509 -req -days 3652 -in ssl-client.csr \ -CA customerCA.crt \ -CAkey customerCA.key \ -CAcreateserial \ -out ssl-client.crt Signature ok subject=/C=US/ST=WA/L=Seattle/O=Example Company/OU=sales Getting CA Private Key

为启用自定义 SSL AWS CloudHSM

客户端软件开发工具包 3 或客户端软件开发工具包 5 的步骤不同。有关使用 configure 命令行工具的更多信息,请参阅 Configure 工具

适用于客户端软件开发工具包 3 的自定义 SSL

使用适用于客户端软件开发工具包 3 的配置工具启用自定义 SSL。有关适用于客户端软件开发工具包 3 的配置工具的更多信息,请参阅 客户端软件开发工具包 3 配置工具

在 Linux 上对客户端软件开发工具包 3 使用自定义证书和密钥进行 TLS 客户端与服务器之间的双向身份认证
  1. 将您的密钥和证书复制到相应目录。

    sudo cp ssl-client.crt /opt/cloudhsm/etc sudo cp ssl-client.key /opt/cloudhsm/etc
  2. 使用配置工具指定 ssl-client.crtssl-client.key

    sudo /opt/cloudhsm/bin/configure --ssl \ --pkey /opt/cloudhsm/etc/ssl-client.key \ --cert /opt/cloudhsm/etc/ssl-client.crt
  3. customerCA.crt 证书添加到信任存储。创建此证书主题名的哈希。这会创建一个索引以允许按该名称查找此证书。

    openssl x509 -in /opt/cloudhsm/etc/customerCA.crt -hash | head -n 1 1234abcd

    创建目录。

    mkdir /opt/cloudhsm/etc/certs

    使用哈希名称创建一个包含此证书的文件。

    sudo cp /opt/cloudhsm/etc/customerCA.crt /opt/cloudhsm/etc/certs/1234abcd.0

适用于客户端软件开发工具包 5 的自定义 SSL

使用任何客户端软件开发工具包 5 配置工具启用自定义 SSL。有关适用于客户端软件开发工具包 5 的配置工具的更多信息,请参阅 客户端软件开发工具包 5 配置工具

PKCS #11 library
在 Linux 上对客户端软件开发工具包 5 使用自定义证书和密钥进行 TLS 客户端与服务器之间的双向身份认证
  1. 将您的密钥和证书复制到相应目录。

    $ sudo cp ssl-client.crt /opt/cloudhsm/etc sudo cp ssl-client.key /opt/cloudhsm/etc
  2. 使用配置工具指定 ssl-client.crtssl-client.key

    $ sudo /opt/cloudhsm/bin/configure-pkcs11 \ --server-client-cert-file /opt/cloudhsm/etc/ssl-client.crt \ --server-client-key-file /opt/cloudhsm/etc/ssl-client.key
在 Windows 上对客户端软件开发工具包 5 使用自定义证书和密钥进行 TLS 客户端与服务器之间的双向身份验证
  1. 将您的密钥和证书复制到相应目录。

    cp ssl-client.crt C:\ProgramData\Amazon\CloudHSM\ssl-client.crt cp ssl-client.key C:\ProgramData\Amazon\CloudHSM\ssl-client.key
  2. 使用 PowerShell 解释器,使用配置工具指定ssl-client.crtssl-client.key

    & "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" ` --server-client-cert-file C:\ProgramData\Amazon\CloudHSM\ssl-client.crt ` --server-client-key-file C:\ProgramData\Amazon\CloudHSM\ssl-client.key
OpenSSL Dynamic Engine
在 Linux 上对客户端软件开发工具包 5 使用自定义证书和密钥进行 TLS 客户端与服务器之间的双向身份认证
  1. 将您的密钥和证书复制到相应目录。

    $ sudo cp ssl-client.crt /opt/cloudhsm/etc sudo cp ssl-client.key /opt/cloudhsm/etc
  2. 使用配置工具指定 ssl-client.crtssl-client.key

    $ sudo /opt/cloudhsm/bin/configure-dyn \ --server-client-cert-file /opt/cloudhsm/etc/ssl-client.crt \ --server-client-key-file /opt/cloudhsm/etc/ssl-client.key
JCE provider
在 Linux 上对客户端软件开发工具包 5 使用自定义证书和密钥进行 TLS 客户端与服务器之间的双向身份认证
  1. 将您的密钥和证书复制到相应目录。

    $ sudo cp ssl-client.crt /opt/cloudhsm/etc sudo cp ssl-client.key /opt/cloudhsm/etc
  2. 使用配置工具指定 ssl-client.crtssl-client.key

    $ sudo /opt/cloudhsm/bin/configure-jce \ --server-client-cert-file /opt/cloudhsm/etc/ssl-client.crt \ --server-client-key-file /opt/cloudhsm/etc/ssl-client.key
在 Windows 上对客户端软件开发工具包 5 使用自定义证书和密钥进行 TLS 客户端与服务器之间的双向身份验证
  1. 将您的密钥和证书复制到相应目录。

    cp ssl-client.crt C:\ProgramData\Amazon\CloudHSM\ssl-client.crt cp ssl-client.key C:\ProgramData\Amazon\CloudHSM\ssl-client.key
  2. 使用 PowerShell 解释器,使用配置工具指定ssl-client.crtssl-client.key

    & "C:\Program Files\Amazon\CloudHSM\bin\configure-jce.exe" ` --server-client-cert-file C:\ProgramData\Amazon\CloudHSM\ssl-client.crt ` --server-client-key-file C:\ProgramData\Amazon\CloudHSM\ssl-client.key
CloudHSM CLI
在 Linux 上对客户端软件开发工具包 5 使用自定义证书和密钥进行 TLS 客户端与服务器之间的双向身份认证
  1. 将您的密钥和证书复制到相应目录。

    $ sudo cp ssl-client.crt /opt/cloudhsm/etc sudo cp ssl-client.key /opt/cloudhsm/etc
  2. 使用配置工具指定 ssl-client.crtssl-client.key

    $ sudo /opt/cloudhsm/bin/configure-cli \ --server-client-cert-file /opt/cloudhsm/etc/ssl-client.crt \ --server-client-key-file /opt/cloudhsm/etc/ssl-client.key
在 Windows 上对客户端软件开发工具包 5 使用自定义证书和密钥进行 TLS 客户端与服务器之间的双向身份验证
  1. 将您的密钥和证书复制到相应目录。

    cp ssl-client.crt C:\ProgramData\Amazon\CloudHSM\ssl-client.crt cp ssl-client.key C:\ProgramData\Amazon\CloudHSM\ssl-client.key
  2. 使用 PowerShell 解释器,使用配置工具指定ssl-client.crtssl-client.key

    & "C:\Program Files\Amazon\CloudHSM\bin\configure-cli.exe" ` --server-client-cert-file C:\ProgramData\Amazon\CloudHSM\ssl-client.crt ` --server-client-key-file C:\ProgramData\Amazon\CloudHSM\ssl-client.key