步骤 2:创建证书签名请求 (CSR) 和证书 - AWS CloudHSM

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

步骤 2:创建证书签名请求 (CSR) 和证书

要启用 HTTPS,您的 Web 服务器和 SSL/TLS 证书需要一个相应的私有密钥。要将 SSL/TLS 卸载与一起使用 AWS CloudHSM,您需要将私钥存储在集群的 HSM 中。 AWS CloudHSM 为此,您可使用适用于 Microsoft 的加密 API:下一代 (CNG) 的AWS CloudHSM 密钥存储提供程序 (KSP) 来创建证书签名请求 (CSR)。然后,您向证书颁发机构 (CA) 提供 CSR,该机构负责签署 CSR 以生成证书。

创建 CSR

使用 Windows 服务器上的 AWS CloudHSM KSP 创建 CSR。

创建 CSR
  1. 如果您尚未完成此操作,请连接到您的 Windows 服务器。有关更多信息,请参阅 Amazon EC2 用户指南中的 “连接到您的实例”。

  2. 使用以下命令启动 AWS CloudHSM 客户端守护程序。

    Amazon Linux
    $ sudo start cloudhsm-client
    Amazon Linux 2
    $ sudo service cloudhsm-client start
    CentOS 7
    $ sudo service cloudhsm-client start
    CentOS 8
    $ sudo service cloudhsm-client start
    RHEL 7
    $ sudo service cloudhsm-client start
    RHEL 8
    $ sudo service cloudhsm-client start
    Ubuntu 16.04 LTS
    $ sudo service cloudhsm-client start
    Ubuntu 18.04 LTS
    $ sudo service cloudhsm-client start
    Windows
    • 对于 Windows 客户端 1.1.2 以上版本:

      C:\Program Files\Amazon\CloudHSM>net.exe start AWSCloudHSMClient
    • 对于 Windows 客户端 1.1.1 及更低版本:

      C:\Program Files\Amazon\CloudHSM>start "cloudhsm_client" cloudhsm_client.exe C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_client.cfg
  3. 在您的 Windows Server 上,使用文本编辑器创建一个名为 IISCertRequest.inf 的证书请求文件。以下显示了示例 IISCertRequest.inf 文件的内容。有关可在文件中指定的各部分、键和值,请参阅 Microsoft 的文档。请勿更改 ProviderName 值。

    [Version] Signature = "$Windows NT$" [NewRequest] Subject = "CN=example.com,C=US,ST=Washington,L=Seattle,O=ExampleOrg,OU=WebServer" HashAlgorithm = SHA256 KeyAlgorithm = RSA KeyLength = 2048 ProviderName = "Cavium Key Storage Provider" KeyUsage = 0xf0 MachineKeySet = True [EnhancedKeyUsageExtension] OID=1.3.6.1.5.5.7.3.1
  4. 使用 Windows certreq 命令来从您在上一步中创建的 IISCertRequest.inf 文件创建 CSR。以下示例将 CSR 保存至名为 IISCertRequest.csr 的文件。如果您为证书请求文件使用了不同的文件名,请将 IIS CertRequest .inf 替换为相应的文件名。您可以选择将 IIS CertRequest .cs r 替换为 CSR 文件的不同文件名。

    C:\>certreq -new IISCertRequest.inf IISCertRequest.csr SDK Version: 2.03 CertReq: Request Created

    IISCertRequest.csr 文件包含您的 CSR。您需要此 CSR 才能获取签名证书。

获取签名证书并导入

在生产环境中,您通常使用证书颁发机构 (CA) 通过 CSR 创建证书。测试环境无需 CA。如果您确实使用了一个 CA,请向它发送 CSR 文件 (IISCertRequest.csr) 并使用该 CA 创建已签名的 SSL/TLS 证书。

作为使用 CA 的替代方案,您可以使用 OpenSSL 等工具创建自签名证书。

警告

自签名证书不受浏览器的信任,不应在生产环境中使用。它们可在测试环境中使用。

以下过程演示了如何创建自签名证书并使用该证书来签署您的 Web 服务器的 CSR。

创建自签名证书
  1. 使用以下 OpenSSL 命令创建私有密钥。您可以选择将 SelfSignedCA.key 替换为包含私钥的文件名。

    openssl genrsa -aes256 -out SelfSignedCA.key 2048 Generating RSA private key, 2048 bit long modulus ......................................................................+++ .........................................+++ e is 65537 (0x10001) Enter pass phrase for SelfSignedCA.key: Verifying - Enter pass phrase for SelfSignedCA.key:
  2. 使用以下 OpenSSL 命令,通过您在上一步中创建的私有密钥创建自签名证书。这是一个交互式命令。阅读屏幕上的说明,并按照提示操作。将 SelfSignedCA.key 替换为包含您的私钥的文件名(如果不同)。您可以选择将 SelfSignedCA.crt 替换为包含自签名证书的文件名。

    openssl req -new -x509 -days 365 -key SelfSignedCA.key -out SelfSignedCA.crt Enter pass phrase for SelfSignedCA.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 []:
使用您的自签名证书签署 Web 服务器的 CSR
  • 使用以下 OpenSSL 命令,通过您的私有密钥和自签名证书签署 CSR。将以下文件替换为包含相应数据的文件的名称(如果不同)。

    • IIS CertRequest .csr-包含您的 Web 服务器的 CSR 的文件的名称

    • SelfSignedca.crt-包含您的自签名证书的文件的名称

    • SelfSignedCA.key-包含您的私钥的文件的名称

    • IISCert.crt – 包含您的 Web 服务器签名证书的文件的名称

    openssl x509 -req -days 365 -in IISCertRequest.csr \ -CA SelfSignedCA.crt \ -CAkey SelfSignedCA.key \ -CAcreateserial \ -out IISCert.crt Signature ok subject=/ST=IIS-HSM/L=IIS-HSM/OU=IIS-HSM/O=IIS-HSM/CN=IIS-HSM/C=IIS-HSM Getting CA Private Key Enter pass phrase for SelfSignedCA.key:

在完成上一步后,您会有一个用于 Web 服务器的签名证书 (IISCert.crt) 和一个自签名证书 (SelfSignedCA.crt)。在具有这些文件后,请转到步骤 3:配置 Web 服务器