如何将第三方颁发的 TLS/SSL 证书导入 ACM?

上次更新日期:2022 年 6 月 24 日

我想将第三方颁发的 TLS/SSL 证书导入到 AWS Certificate Manager(ACM)中。

解决方法

要将第三方颁发的 TLS/SSL 证书导入 ACM,您必须提供证书、其私有密钥和证书链。您的证书还必须包含导入证书的先决条件

您需要以下文件以类似如下内容的 PEM 编码格式导入:

PEM 编码的证书:

-----BEGIN CERTIFICATE-----
Base64–encoded certificate
-----END CERTIFICATE-----

PEM 编码的证书链:(此示例显示了存在两个从属/中间 CA 的链。这里给出的顺序是保留根 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 中。有关说明,请参阅导入证书