在 中准备好证书Amazon Certificate Manager - Amazon API Gateway
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 中准备好证书Amazon Certificate Manager

为 API 设置自定义域名之前,您必须先在 中准备好 SSL/TLS 证书Amazon Certificate Manager 以下步骤介绍了如何完成上述操作。有关更多信息,请参阅 Amazon Certificate Manager 用户指南

注意

要将 ACM 证书与 API Gateway 边缘优化的自定义域名结合使用,您必须在美国东部(弗吉尼亚北部)(us-east-1) 区域中请求或导入证书。对于 API Gateway 区域自定义域名,您必须在与 API 相同的区域中请求或导入证书。证书必须由公开信任的证书颁发机构签名并涵盖自定义域名。

首先,注册您的互联网域,例如 example.com。您可以使用 Amazon Route 53 或获得认可的第三方域注册商。要获取此类注册商的列表,请参阅 ICANN 网站上获得认可的注册商目录

要为域名创建 SSL/TLS 证书或将证书导入 ACM 中,请执行以下操作之一:

为域名请求 ACM 提供的证书
  1. 登录到 Amazon Certificate Manager 控制台

  2. 选择请求证书

  3. Domain name (域名) 中为您的 API 输入自定义域名,例如 api.example.com

  4. (可选)选择向此证书添加一个名称

  5. 选择 Review and request

  6. 选择 Confirm and request

  7. 如果请求有效,Internet 域中注册的拥有者必须同意请求,然后 ACM 才能颁发证书。

将域名的证书导入 ACM 中
  1. 从证书颁发机构为自定义域名获取 PEM 编码的 SSL/TLS 证书。要获取此类 CA 的部分列表,请参阅 Mozilla 内置 CA 列表

    1. 使用 OpenSSL 网站中的 OpenSSL 工具包生成证书的私有密钥并将输出结果保存到文件中:

      openssl genrsa -out private-key-file 2048
      注意

      Amazon API Gateway 利用 Amazon CloudFront 支持自定义域名的证书。因此,自定义域名 SSL/TLS 证书的要求和限制由 CloudFront 决定。例如,公有密钥的最大大小为 2048,而私有密钥大小可以是 1024、2048 和 4096。公有密钥的大小取决于所用的证书颁发机构。要求证书颁发机构返回大小不同于默认长度的密钥。有关更多信息,请参阅安全访问对象创建签名 URL 和签名 Cookie

    2. 使用 OpenSSL 通过之前生成的私有密钥生成证书签名请求 (CSR):

      openssl req -new -sha256 -key private-key-file -out CSR-file
    3. 将 CSR 提交给证书颁发机构并保存生成的证书。

    4. 从证书颁发机构下载证书链。

    注意

    如果您通过其他方式获取了私有密钥并且密钥已加密,则您可以使用以下命令解密密钥,然后再将其提交到 API Gateway 以便设置自定义域名。

    openssl pkcs8 -topk8 -inform pem -in MyEncryptedKey.pem -outform pem -nocrypt -out MyDecryptedKey.pem
  2. 将证书上传到 Amazon Certificate Manager:

    1. 登录到 Amazon Certificate Manager 控制台

    2. 选择 Import a certificate

    3. 对于 Certificate body (证书正文),输入或粘贴从证书颁发机构提供的 PEM 格式的服务器证书的正文。下面显示了此类证书的简短示例。

      -----BEGIN CERTIFICATE----- EXAMPLECA+KgAwIBAgIQJ1XxJ8Pl++gOfQtj0IBoqDANBgkqhkiG9w0BAQUFADBB ... az8Cg1aicxLBQ7EaWIhhgEXAMPLE -----END CERTIFICATE-----
    4. 对于 Certificate private key (证书私有密钥),输入或粘贴 PEM 格式的证书的私有密钥。下面显示了此类密钥的简短示例。

      -----BEGIN RSA PRIVATE KEY----- EXAMPLEBAAKCAQEA2Qb3LDHD7StY7Wj6U2/opV6Xu37qUCCkeDWhwpZMYJ9/nETO ... 1qGvJ3u04vdnzaYN5WoyN5LFckrlA71+CszD1CGSqbVDWEXAMPLE -----END RSA PRIVATE KEY-----
    5. 对于 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-----
    6. 选择 Review and import

成功创建或导入证书后,请记下证书的 ARN。您在设置自定义域名时会需要它。