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

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

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

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

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

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

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

创建密钥 aCSR,然后签名 CSR

客户端 SDK 3 或客户端 SDK 5 的步骤相同。

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

    openssl genrsa -out ssl-client.key 2048 Generating RSA private key, 2048 bit long modulus ........+++ ............+++ e is 65537 (0x10001)
  2. 使用以下 O SSL pen 命令创建证书签名请求 (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. CSR使用您在初始化集群时创建的customerCA.crt证书签名。

    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

客户端 SDK 3 和客户端 SDK 5 的步骤不同。有关使用 configure 命令行工具的更多信息,请参阅 Configure 工具

SSL为客户端 SDK 3 定制

使用客户端 SDK 3 的配置工具启用自定义SSL。有关客户端 SDK 3 的配置工具的更多信息,请参阅客户端 SDK 3 配置工具

在 Linux 上使用自定义证书和密钥与客户端 SDK 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

SSL为客户端 SDK 5 定制

使用任何 Client SDK 5 配置工具来启用自定义SSL。有关客户端 SDK 5 配置工具的更多信息,请参阅客户端 SDK 5 配置工具

PKCS #11 library
在 Linux 上使用自定义证书和密钥与客户端 SDK 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 上使用自定义证书和密钥与客户端 SDK 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 上使用自定义证书和密钥与客户端 SDK 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 上使用自定义证书和密钥与客户端 SDK 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 上使用自定义证书和密钥与客户端 SDK 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 上使用自定义证书和密钥与客户端 SDK 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 上使用自定义证书和密钥与客户端 SDK 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