在 中准备好证书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. 域名中为您的 API 输入自定义域名,例如 api.example.com

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

  5. 选择审核并请求

  6. 选择确认并请求

  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. 选择导入证书

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

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

      -----BEGIN RSA PRIVATE KEY----- EXAMPLEBAAKCAQEA2Qb3LDHD7StY7Wj6U2/opV6Xu37qUCCkeDWhwpZMYJ9/nETO ... 1qGvJ3u04vdnzaYN5WoyN5LFckrlA71+CszD1CGSqbVDWEXAMPLE -----END RSA PRIVATE KEY-----
    5. 对于证书链,输入或粘贴 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. 选择审核并导入

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