AWS Elastic Beanstalk 仅对 API Gateway 开放
Posted
技术标签:
【中文标题】AWS Elastic Beanstalk 仅对 API Gateway 开放【英文标题】:AWS Elastic Beanstalk open only to API Gateway 【发布时间】:2017-05-23 23:38:59 【问题描述】:如何将 Elastic Beanstalk 的访问限制为仅对 API Gateway 的访问?
我发现了类似的问题here,建议在 API Gateway 上创建证书。
我的后端解决方案如图所示:
我在 API Gateway (AWS doc) 中创建了证书。
1.哪个元素应该使用 API Gateway 生成的 PEM 编码证书对 API 进行身份验证?
2。是否可以在 Elastic Load Balancer (ELB) 上执行此操作,还是应该在运行 nginx 的应用程序实例上执行此操作?
【问题讨论】:
我不确定这是文档错误还是真正的问题,但他们目前在“已知问题”中将 nginx 列为可能不支持与 API 网关兼容的 SSL 客户端身份验证的后端:@ 987654324@ 【参考方案1】:由于 ELB 不支持两个 SSL 认证,你应该在你的 nginx 服务器上认证证书。
您可以像这样配置 nginx 服务器以接受来自 API 网关的客户端证书。
server
listen 443;
ssl on;
server_name example.com;
ssl_certificate /etc/nginx/certs/server.crt;
ssl_certificate_key /etc/nginx/certs/server.key;
ssl_client_certificate /etc/nginx/certs/ca.crt;
ssl_verify_client optional;
location /
root /var/www/example.com/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /var/www/example.com/lib/Request.class.php;
fastcgi_param VERIFIED $ssl_client_verify;
fastcgi_param DN $ssl_client_s_dn;
include fastcgi_params;
然后,使用 API Gateway 控制台上的测试调用功能来测试此设置是否适合您。
【讨论】:
以上是关于AWS Elastic Beanstalk 仅对 API Gateway 开放的主要内容,如果未能解决你的问题,请参考以下文章
AWS Elastic Beanstalk CLI 安装错误