amazon-web-services - AWS Elastic Beanstalk 仅对 API 网关开放

标签 amazon-web-services ssl nginx amazon-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 实例上执行此操作?

最佳答案

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

关于amazon-web-services - AWS Elastic Beanstalk 仅对 API 网关开放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41552614/

相关文章:

caching - 我的缓存守护进程应该驻留在哪里?

IIS 7.5 SSL 错误 “ssl_error_rx_record_too_long” 与自签名证书

php - 无法使用 nginx 实现 php

nginx - 如何使用 nginx 以 https 模式运行 odoo?

python - Dynamodb 查询具有多个属性值

amazon-web-services - 使用 AWS CLI 上传到 S3 时如何设置 Content-Type?

java - 将 Cognito 身份验证与弹性负载均衡器结合使用

java - Cassandra:如何设置客户端到节点的加密?

java - Android SSL SNI 连接问题

docker - NGINX反向代理不适用于Docker中运行的.NET Core WebAPI