amazon-web-services - 保护 AWS API Gateway 后面的现有 API

标签 amazon-web-services ssl aws-api-gateway amazon-elb client-certificates

假设我有一个 RESTful API,它位于 ELB 后面的 Windows EC2 集群上。现有的 API 是一个 .NET 应用程序并托管在 IIS 中。

我想尝试将 AWS API Gateway 放在现有 API 的前面,这样安全性、可扩展性等都由 AWS 处理。基本上将 AWS 网关设置为现有 API 的 HTTP 代理。

AWS 文档指出,现有 API 必须公开。但它应该通过检查客户端证书来验证调用是否源自 Amazon API Gateway 来加以保护。

http://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-client-side-ssl-authentication.html

但是,现有 API 的 SSL 连接在 ELB 处终止。因此,当我们根据请求在代码中检查客户端证书时,它不存在。

要获得 EC2/IIS/代码级别的客户端证书需要做什么?

或者是否有其他方法来保护现有 API 并确保 AWS API Gateway 仍然可以与其通信?

最佳答案

您需要配置您的 ELB 以执行基于 TCP 的负载平衡并终止 IIS/EC2 主机上的 SSL 连接。这将需要将 SSL 证书分发给主机并将它们配置为将证书绑定(bind)到适当的端口。

关于amazon-web-services - 保护 AWS API Gateway 后面的现有 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39700780/

相关文章:

android - "Location of the Android SDK has not been set up in the preferences"错误

amazon-web-services - 如何在 API 网关中上传大于 5mb 的大文件?使用无服务器和 nodejs

aws-api-gateway - AWS Java 开发工具包(API 网关): How to disable an API key

amazon-web-services - Postman 请求 Amazon Alexa Smart Home Skill LWA 时客户端身份验证失败

ruby-on-rails - Ruby、HTTParty、SSL 错误

mysql - 为什么我在我的 AWS Aurora RDS 日志中看到 "server_audit: logging was flushed."?

ios - iOS中 “CFNetwork SSLHandshake failed(-9807)”的处理方法

amazon-web-services - 如何更改我的 Lambda Functions API 端点的名称

node.js - 使用 sendUsersMessages(javascript SDK)时,AWS Pinpoint 出现 TemplateConfiguration 错误

amazon-web-services - Redshift COPY 错误 1206 无效时间戳