【问题标题】:AWS ELB Server-Side HTTPSAWS ELB 服务器端 HTTPS
【发布时间】:2023-03-17 03:18:02
【问题描述】:
我一直在努力使用 AWS 设置 HTTPS。我一直在尝试使用自签名证书进行此操作,但发现该过程有点问题。
在此过程中出现的一个问题是服务器端 HTTPS 业务。我正在使用的客户端请求当用户点击服务器时 URL 更改为 HTTPS。我想知道“服务器端 HTTPS”是否意味着该协议对最终用户是透明的?
他们还会在浏览器中看到 HTTP 吗?
谢谢。
【问题讨论】:
标签:
https
amazon-web-services
amazon-elb
【解决方案1】:
不知道这是否是您问题的确切答案,但也许是一条建议。使用 ELB 时,我发现在 ELB 上安装 SSL 证书并使用 SSL 卸载将请求从 ELB 上的端口 443 转发到 EC2 实例上的端口 80 会容易得多。
这样做的优点:
- 您只需在一个地方安装证书,而不必跨多个实例安装(或更新 AMI 并重新启动实例),从而使证书更新更容易执行。
- 您可以在 Web 服务器上获得更好的性能,因为它们不必处理 SSL 加密。
一些缺点:
- 通信未进行端到端加密,因此在 ELB 和服务器之间存在通信可能被截获的技术(尽管不太可能)机会。如果您正在处理诸如 PCI 合规性之类的问题,这可能对您很重要。
- 如果您需要通过 HTTPS 直接访问其中一个实例,这是不可能的。
- 如果您的应用程序需要检查请求是否通过 HTTPS,您可能需要确保您的应用程序知道 ELB 注入请求中的与 https 相关的标头(即
x-forwarded-proto)。
没有理由禁止您将通过 HTTP 的传入请求重定向到 HTTPS。但是,您可能需要查看 x-forwarded-proto 标头才能将任何 Web 服务器或应用程序级别重定向到 HTTPS。最终用户无法知道他们的请求的 HTTPS 包装器正在 ELB 上卸载。