本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建和签名 X509 证书
您可以使用 OpenSSL
为应用程序创建 X509 证书。OpenSSL 一种支持广泛加密功能的标准开源库,其功能包括创建和签名 X509 证书。有关 OpenSSL 的更多信息,请访问 www.openssl.org/
注意
如果要在单实例环境中使用 HTTPS 或使用自签名证书在后端上重新加密,您只需在本地创建证书。如果您拥有域名,则可以在 AWS 中创建证书并通过 AWS Certificate Manager (ACM) 免费将证书用于负载均衡的环境。有关说明,请参阅 AWS Certificate Manager 用户指南中的请求证书。
在命令行运行 openssl version
,查看是否已安装 OpenSSL。如果尚未安装,您可使用公有 GitHub 存储库
~/eb$ eb ssh
[ec2-user@ip-255-55-55-255 ~]$ openssl version
OpenSSL 1.0.1k-fips 8 Jan 2015
您需要创建 RSA 私有密钥才能创建证书签名请求 (CSR)。要创建私有密钥,请使用 openssl genrsa 命令:
[ec2-user@ip-255-55-55-255 ~]$ openssl genrsa 2048 > privatekey.pem
Generating RSA private key, 2048 bit long modulus
.................................................................................................................................+++
...............+++
e is 65537 (0x10001)
privatekey.pem
-
要用于保存私有密钥的文件的名称。通常,openssl genrsa 命令将私有密钥内容输出到屏幕,但此命令将输出通过管道传送到文件。选择任何文件名,并将文件存储在安全位置,以便您以后可以检索它。如果您丢失私有密钥,则无法使用您的证书。
CSR 是指您为申请数字服务器证书而发送至证书颁发机构 (CA) 的文件。要创建 CSR,请使用 openssl req 命令:
$ openssl req -new -key privatekey.pem
-out csr.pem
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.
输入所请求的信息并按 Enter。下表描述并显示每个字段的示例。
名称 | 描述 | 示例 |
---|---|---|
国家/地区名称 | 代表国家/地区的两个字母 ISO 缩写。 | US = 美国 |
州或省 | 组织所在州或省的名称。不能缩写此名称。 | Washington |
所在地名称 | 组织所在城市的名称。 | Seattle |
组织名称 | 组织的法定全称。请勿缩写组织名称。 | Example Corporation |
组织部门 | 可选,用于提供额外的组织信息。 | 市场营销 |
公用名 | 网站的完全限定域名。这必须与用户访问站点时看到的域名相符,否则将显示证书错误。 | www.example.com |
电子邮件地址 | 站点管理员的电子邮件地址。 | someone@example.com |
您可向第三方提交签名请求以供签名,或自行签名以供开发和测试。自签名证书也在负载均衡器和 EC2 实例之间用于后端 HTTPS。
要对证书进行签名,请使用 openssl x509 命令。以下示例使用来自上一步骤 (privatekey.pem
) 和签名请求 (csr.pem
) 的私有密钥来创建名为 public.crt
的公有证书,该证书的有效期为 365
天。
$ openssl x509 -req -days 365
-in csr.pem
-signkey privatekey.pem
-out public.crt
Signature ok
subject=/C=us/ST=washington/L=seattle/O=example corporation/OU=marketing/CN=www.example.com/emailAddress=someone@example.com
Getting Private key
保存私钥和公有证书以待将来使用。您可放弃签名请求。请始终将私有密钥存储在安全位置并避免将其添加到源代码。
要将证书用于 Windows Server 平台,您必须将证书转换为 PFX 格式。使用以下命令可在私有密钥和公有证书文件中创建 PFX 证书:
$ openssl pkcs12 -export -out example.com
.pfx -inkey privatekey.pem
-in public.crt
Enter Export Password: password
Verifying - Enter Export Password: password
既然您已经拥有了证书,您可以将其上传到 IAM以与负载均衡器结合使用,或者在您的环境中配置实例以终止 HTTPS。