Amazon API Gateway
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

在 AWS Certificate Manager 中准备好证书

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

注意

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

为指定域名获取 ACM 颁发的证书或将证书导入其中

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

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

    为域名请求 ACM 提供的证书

    1. 登录到 AWS Certificate Manager 控制台

    2. 选择请求证书

    3. 域名中,为 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. 将证书上传到 AWS Certificate Manager:

      1. 登录到 AWS Certificate Manager 控制台

      2. 选择 Import a certificate

      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. 选择 Review and import

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