AWS Elastic Beanstalk仅对API网关开放

时间:2017-01-09 16:34:13

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

如何将Elastic Beanstalk的访问权限仅限于API网关?

我发现了类似的问题here,建议在API网关上创建证书。

我的后端解决方案就像在图像上一样:

enter image description here

我已在API网关(AWS doc)中创建了证书。

1。哪个元素应使用API​​网关生成的PEM编码证书对API进行身份验证?

2。是否可以在Elastic Load Balancer(ELB)上执行此操作,还是应该在运行nginx的App实例上执行此操作?

1 个答案:

答案 0 :(得分:0)

由于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​​网关控制台上的“测试调用”功能测试此设置是否适合您。