我想将第三方颁发的 TLS/SSL 证书导入 AWS Certificate Manager(ACM)。
解决方法
要将第三方颁发的 TLS/SSL 证书导入 ACM,必须提供证书、其私钥和证书链。您的证书还必须包含导入证书的前提条件。
要导入下面这样的 PEM 编码格式,需要用到以下文件:
PEM 编码的证书:
-----BEGIN CERTIFICATE-----
Base64–encoded certificate
-----END CERTIFICATE-----
PEM 编码的证书链:(此示例显示了拥有两个从属/中级证书的证书链。这里给出的顺序是保留根 CA 作为最后一个条目):
-----BEGIN CERTIFICATE-----
Base64–encoded certificate of SubordinateCA2
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Base64–encoded certificate of SubordinateCA1
----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Base64–encoded certificate of Root CA
-----END CERTIFICATE-----
PEM 编码的私钥:
-----BEGIN RSA PRIVATE KEY-----
Base64–encoded private key
-----END RSA PRIVATE KEY-----
有关更多信息和示例,请参阅用于导入的证书和密钥格式。
使用 OpenSSL 将证书包从 PKCS#12 (PFX) 转换为 PEM
1. 将 PFX 或 P12 文件复制到 OpenSSL 工具所在位置,或者在命令行中指定该位置。
2. 输入以下 OpenSSL 命令并将 PKCS12file 替换为您的证书文件:
$openssl pkcs12 -in PKCS12file -out Cert_Chain_Key.txt
您会收到下面这样的提示:
Enter Import Password:(this is the password that was used when the PKCS12 file was created)
Enter PEM pass phrase:(this is the private key password)
Verifying - Enter PEM pass phrase: (confirm the private key password)
3. 输入所需的密码和密码短语。证书、私钥和证书链(根或中级)经解析并放入 Cert_Chain_Key.txt 文件中。
**注意:**私钥仍按以下格式加密:
-----BEGIN ENCRYPTED PRIVATE KEY-----
Base64–encoded private key
-----END ENCRYPTED PRIVATE KEY-----
解密私钥
1. 将私钥从 Cert_Chain_Key.txt 文件复制到您的 OpenSSL 目录中,或者在命令行中指定该位置。
2. 输入以下 OpenSSL 命令并将 Encrypted.key 替换为您的加密私钥文件:
$openssl rsa -in Encrypted.key -out UnEncrypted.key
3. 输入密码短语。此时,解密后的私钥是 UnEncrypted.key。要验证这一点,请使用文本编辑器打开 UnEncrypted.key 文件并查看类似于以下格式的标题:
-----BEGIN RSA PRIVATE KEY-----
Base64–encoded private key
-----END RSA PRIVATE KEY-----
现在,您可以成功地将证书导入 ACM。有关说明,请参阅导入证书。
相关信息
为什么我无法将第三方公有 SSL/TLS 证书导入 AWS Certificate Manager (ACM)?
如何使用 OpenSSL 将 PFX 格式的证书导入 AWS Certificate Manager