【发布时间】:2020-09-01 10:12:45
【问题描述】:
我有一个在 AWS 中运行的服务器 EC2 实例,在一个负载均衡器后面,由于我只有一个实例,目前它实际上并没有做任何事情(最终,我计划使用它来扩展和在多个实例之间分配流量)。我正在使用 Rt53 将我的域名指向负载均衡器。
实例上的网络服务器使用 node(js) 和 express 通过端口 443 (https) 为站点提供服务,并加载适当的证书用于加密/身份/等,由 certbot 使用 Let's Encrypt 生成。
负载均衡器配置如下:
因此,对于两个端口,负载均衡器都使用 HTTPS:443 指向同一服务器,我认为这会强制对所有连接进行加密。但是,当我输入我的 URL 为 http://mydomain.tld 时,它会将我带到网络服务器,而没有任何迹象表明它是 https 连接。
这是怎么回事?我的 nodejs 服务器没有设置为通过端口 80 执行任何操作,我认为负载均衡器应该将所有连接路由到端口 443。
【问题讨论】:
-
使用从 http 8- 重定向到 http 443 app.use(function(request, response){ if(!request.secure){ response.redirect("https://" + request.headers .host + request.url); } });
标签: node.js amazon-web-services express amazon-ec2 https