【问题标题】:Possible to force https only on AWS Lightsail?只能在 AWS Lightsail 上强制使用 https?
【发布时间】:2018-11-01 02:55:35
【问题描述】:

我将 AWS Lightsail 负载均衡器与另一个 Lightsail ec2 实例结合使用,以便可以使用 Lightsail 负载均衡器中内置的免费证书管理器。这似乎会自动将所有流量从我的负载均衡器转发到我在port 80 上的 ec2 nginx 服务器,因此以下配置也支持https 连接:

server {
    listen       80;
    server_name  mountainviewwebtech.ca www.mountainviewwebtech.ca;

    location / {
        proxy_pass              http://localhost:3000;
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
    }
}

但是,当我添加以下行以确保 http 重定向到 https 时,我收到错误 ERR_TOO_MANY_REDIRECTS,因为即使使用安全连接,我的 ec2 实例也仅在 port 80 上接收流量,所以它只是一遍又一遍地重定向。

if ($scheme != https) {
    return 301 https://$host$request_uri;
}

在转发到我的 ec2 实例之前,是否可以获取原始的 $scheme

【问题讨论】:

  • 测试不应该是if ($http_x_forwarded_proto != "https") { ...吗?平衡器应该在传入请求上设置X-Forwarded-Proto。我不知道$scheme 是否可行,在这里。
  • 非常感谢您的帮助。这解决了我的问题,以便现在强制执行https,但我现在遇到了可能是问题的事情。似乎正在发生的事情是每个请求(甚至是静态资产的请求)都被重定向到https,我不确定这是否是一个好习惯。我知道的一件糟糕的事情是,由于重定向数量https://developers.google.com/speed/pagespeed/insights/?url=http%3A%2F%2Fmountainviewwebtech.ca%2F,Google Page Insight Tools 甚至无法分析我的网站。我想知道我现在是否只需要一个 CDN 或修改配置更多

标签: amazon-web-services nginx amazon-lightsail


【解决方案1】:

如果您想要一个“免费”的 SSL 证书,使用 Let's Encrypt 的 CertBot 将助您一臂之力(并为您省钱)。我在这个选项上取得了很好的成功。

使用负载平衡器作为 SSL 终结器会结束负载平衡器上的安全连接。因此,未加密的流量从平衡器发送到计算实例(端口 80)。如果要将 SSL 流量转发到计算实例,请查看负载均衡器是否会进行端口转发。我怀疑这是 Lightsail。

【讨论】:

    猜你喜欢
    • 2018-06-18
    • 2017-06-14
    • 2015-06-25
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    • 2015-01-08
    相关资源
    最近更新 更多