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

AWS Elastic Beanstalk CLI 安装错误

text AWS Elastic Beanstalk

HTTPS Elastic Beanstalk (AWS) 到 Android

AWS Elastic Beanstalk 无法担任角色

AWS Elastic Beanstalk