首页 > 解决方案 > AWS API Gateway 将请求转发到带有私有证书的 HTTPS 服务器

问题描述

这是我的场景:我正在尝试设置 AWS API Gateway,以便所有对 API Gateway 端点的调用都将转发到它后面的 Nginx HTTPS 服务器:

          HTTPS                HTTPS                    HTTPS                plain HTTP
[Client] ------> {{Internet}} -----> [AWS API Gateway] -----> [HTTPS server] ----------> [Internal web services]

只有 HTTPS 服务器可以访问专用网络中的内部 Web 服务。HTTPS 服务器本身可以在 Internet 上公开访问,AWS API 网关也是如此。

现在,我在 HTTPS 服务器上安装的 SSL 证书是私有证书,由我创建的私有 CA 签名。

在此处查看我的 AWS API Gateway 配置

当 AWS API Gateway 尝试通过指向服务器的 HTTPS 端点 URL 将 HTTPS 请求转发到 HTTPS 服务器时,AWS API Gateway 收到错误:

"Execution failed due to configuration error: General SSLEngine problem"

这可能是因为 AWS API Gateway 无法识别我的私有 CA。如果是这样,我如何将我的私有 CA 导入 AWS API Gateway 以供此使用?

编辑:我的意图是 AWS API Gateway 必须使用 API Gateway 的客户端证书对 HTTPS 服务器进行身份验证。

标签: amazon-web-servicessslhttpsconfigurationcertificate

解决方案


您不能将自签名证书与 API Gateway 一起使用。如果您的 API 网关仅用于与您的服务器对话,请查看在您的本地 EC2 实例上使用certbot 。

或者,如果您想增加更多安全性,您可以执行以下操作。

  • 将 EC2 实例迁移到私有子网中。
  • 通过 ACM 导入或创建新证书。
  • 使用您在 ACM 中设置的证书创建具有 TLS 侦听器的内部网络负载均衡器。
  • 创建VPCLink以便您的 API 网关可以访问您的内部 NLB。

推荐阅读