本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 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
-
如果您尚未完成此操作,请连接到您的 Windows 服务器。有关更多信息,请参阅 Amazon EC2 用户指南中的 “连接到您的实例”。
-
使用以下命令启动 AWS CloudHSM 客户端守护程序。
-
在您的 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
-
使用 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。
创建自签名证书
-
使用以下 OpenSSL 命令创建私有密钥。您可以选择将
SelfSignedCA.key
替换为包含私钥的文件名。openssl genrsa -aes256 -out
SelfSignedCA.key
2048Generating RSA private key, 2048 bit long modulus ......................................................................+++ .........................................+++ e is 65537 (0x10001) Enter pass phrase for SelfSignedCA.key: Verifying - Enter pass phrase for SelfSignedCA.key:
-
使用以下 OpenSSL 命令,通过您在上一步中创建的私有密钥创建自签名证书。这是一个交互式命令。阅读屏幕上的说明,并按照提示操作。将
SelfSignedCA.key
替换为包含您的私钥的文件名(如果不同)。您可以选择将SelfSignedCA.crt
替换为包含自签名证书的文件名。openssl req -new -x509 -days 365 -key
SelfSignedCA.key
-outSelfSignedCA.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
\ -CASelfSignedCA.crt
\ -CAkeySelfSignedCA.key
\ -CAcreateserial \ -outIISCert.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 服务器。