【问题标题】:AWS Elastic Beanstalk open only to API GatewayAWS Elastic Beanstalk 仅对 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@

标签: amazon-web-services ssl nginx amazon-elastic-beanstalk aws-api-gateway


【解决方案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 控制台上的测试调用功能来测试此设置是否适合您。

【讨论】:

    猜你喜欢
    • 2018-11-01
    • 2015-09-26
    • 2016-12-20
    • 2021-03-07
    • 1970-01-01
    • 2017-01-17
    • 2017-08-05
    • 2018-06-05
    • 2019-03-09
    相关资源
    最近更新 更多