在 中准备好证书Amazon Certificate Manager
为 API 设置自定义域名之前,您必须先在 中准备好 SSL/TLS 证书Amazon Certificate Manager 以下步骤介绍了如何完成上述操作。有关更多信息,请参阅 Amazon Certificate Manager 用户指南。
注意
要将 ACM 证书与 API Gateway 边缘优化的自定义域名结合使用,您必须在美国东部(弗吉尼亚北部)(us-east-1
) 区域中请求或导入证书。对于 API Gateway 区域自定义域名,您必须在与 API 相同的区域中请求或导入证书。证书必须由公开信任的证书颁发机构签名并涵盖自定义域名。
首先,注册您的互联网域,例如
。您可以使用 Amazon Route 53 或获得认可的第三方域注册商。要获取此类注册商的列表,请参阅 ICANN 网站上获得认可的注册商目录example
.com
要为域名创建 SSL/TLS 证书或将证书导入 ACM 中,请执行以下操作之一:
为域名请求 ACM 提供的证书
-
选择请求证书。
-
在 Domain name (域名) 中为您的 API 输入自定义域名,例如
api.example.com
。 -
(可选)选择向此证书添加一个名称。
-
选择 Review and request。
-
选择 Confirm and request。
-
如果请求有效,Internet 域中注册的拥有者必须同意请求,然后 ACM 才能颁发证书。
将域名的证书导入 ACM 中
-
从证书颁发机构为自定义域名获取 PEM 编码的 SSL/TLS 证书。要获取此类 CA 的部分列表,请参阅 Mozilla 内置 CA 列表
-
使用 OpenSSL 网站中的 OpenSSL
工具包生成证书的私有密钥并将输出结果保存到文件中: openssl genrsa -out
private-key-file
2048注意
Amazon API Gateway 利用 Amazon CloudFront 支持自定义域名的证书。因此,自定义域名 SSL/TLS 证书的要求和限制由 CloudFront 决定。例如,公有密钥的最大大小为 2048,而私有密钥大小可以是 1024、2048 和 4096。公有密钥的大小取决于所用的证书颁发机构。要求证书颁发机构返回大小不同于默认长度的密钥。有关更多信息,请参阅安全访问对象和创建签名 URL 和签名 Cookie。
-
使用 OpenSSL 通过之前生成的私有密钥生成证书签名请求 (CSR):
openssl req -new -sha256 -key
private-key-file
-outCSR-file
-
将 CSR 提交给证书颁发机构并保存生成的证书。
-
从证书颁发机构下载证书链。
注意
如果您通过其他方式获取了私有密钥并且密钥已加密,则您可以使用以下命令解密密钥,然后再将其提交到 API Gateway 以便设置自定义域名。
openssl pkcs8 -topk8 -inform pem -in
MyEncryptedKey.pem
-outform pem -nocrypt -outMyDecryptedKey.pem
-
-
将证书上传到 Amazon Certificate Manager:
-
选择 Import a certificate。
-
对于 Certificate body (证书正文),输入或粘贴从证书颁发机构提供的 PEM 格式的服务器证书的正文。下面显示了此类证书的简短示例。
-----BEGIN CERTIFICATE----- EXAMPLECA+KgAwIBAgIQJ1XxJ8Pl++gOfQtj0IBoqDANBgkqhkiG9w0BAQUFADBB ... az8Cg1aicxLBQ7EaWIhhgEXAMPLE -----END CERTIFICATE-----
-
对于 Certificate private key (证书私有密钥),输入或粘贴 PEM 格式的证书的私有密钥。下面显示了此类密钥的简短示例。
-----BEGIN RSA PRIVATE KEY----- EXAMPLEBAAKCAQEA2Qb3LDHD7StY7Wj6U2/opV6Xu37qUCCkeDWhwpZMYJ9/nETO ... 1qGvJ3u04vdnzaYN5WoyN5LFckrlA71+CszD1CGSqbVDWEXAMPLE -----END RSA PRIVATE KEY-----
-
对于 Certificate chain (证书链),输入或粘贴 PEM 格式的中间证书和根证书(可选),一个接一个,不带任何空白行。如果包含了根证书,您的证书链必须以中间证书开始,以根证书结尾。使用证书颁发机构提供的中间证书。不要包含未在信任路径链中的任何中间证书。下面显示了一个简短示例。
-----BEGIN CERTIFICATE----- EXAMPLECA4ugAwIBAgIQWrYdrB5NogYUx1U9Pamy3DANBgkqhkiG9w0BAQUFADCB ... 8/ifBlIK3se2e4/hEfcEejX/arxbx1BJCHBvlEPNnsdw8EXAMPLE -----END CERTIFICATE-----
以下是另一个示例。
-----BEGIN CERTIFICATE-----
Intermediate certificate 2
-----END CERTIFICATE----- -----BEGIN CERTIFICATE-----Intermediate certificate 1
-----END CERTIFICATE----- -----BEGIN CERTIFICATE-----Optional: Root certificate
-----END CERTIFICATE----- -
选择 Review and import。
成功创建或导入证书后,请记下证书的 ARN。您在设置自定义域名时会需要它。