【问题标题】:EC2 (Ubuntu with Nginx) Configuration for AWS Api Gateway Calls With Client Certificate带有客户端证书的 AWS Api 网关调用的 EC2(带有 Nginx 的 Ubuntu)配置
【发布时间】:2016-11-11 01:07:04
【问题描述】:

/etc/nginx/sites-enabled/默认

server {
    listen 80 default_server;
    root /var/www/example;
    index index.php;
    server_name localhost;

    location / {
        try_files $uri/ /index.php
    }
    ...
}

这很好用。我没有在该实例上安装 SSL。除了来自 AWS API-Gateway 的调用外,我想阻止访问我的 api(扩展到多个 EC2 实例)。我在 API Gateway 控制台 (.pem) 下创建了一个客户端证书,并将以下内容添加到 nginx 配置中:

server {
    listen 443;
    ssl on;
    ssl_client_certificate /etc/nginx/ssl/cert.pem;
    ssl_trusted_certificate /etc/nginx/ssl/cert.pem;
    ssl_verify_client on;

    root /var/www/example
    index index.php;
    server_name localhost;

    location / {
        try_files $uri /index.php
    }

    ...
}

错误日志显示'没有为 /etc/nginx/sites-enabled/default:24 中的“ssl”指令定义 ssl_certificate'。好,可以。我尝试了 nginx 文档中的其他一些技巧,但没有运气。绕过认证并将 if-then 添加到 nginx 配置以仅接受来自 API 网关的流量怎么样?如何做呢?您认为在接收端不需要 SSL 的最佳方法是什么?

【问题讨论】:

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


    【解决方案1】:

    由于您使用客户端证书来保护您的端点,因此 API 网关需要 HTTPs 协议。 API Gateway 服务不信任任何没有有效证书的集成端点。此外,还有一个关于how to setup Client side certificate auth in Nginx 的非常清晰的文档。你可能也想看看。

    【讨论】:

    • 自签名证书不适用于 Aws Api 网关服务。 link 声明“......截至 2015 年 9 月 28 日,aws api 网关需要由受信任的证书颁发机构签署的证书”
    猜你喜欢
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 2013-02-25
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多