AWS - 负载均衡器上的 SSL/HTTPS

Posted

技术标签:

【中文标题】AWS - 负载均衡器上的 SSL/HTTPS【英文标题】:AWS - SSL/HTTPS on load balancer 【发布时间】:2015-01-13 17:42:24 【问题描述】:

我在将 https 添加到我的 EC2 实例时遇到问题,也许你们可以找到解决办法。

我有一个负载均衡器,它将连接转发到我的 EC2 实例,我已将 SSL 证书添加到负载均衡器,一切正常,我已向端口 443 添加了一个侦听器,该侦听器将转发到该端口我的实例的 443 和我已将 Apache 配置为侦听端口 443 和 80,现在这里是我的负载均衡器的屏幕截图:

SSL 证书有效,并且在端口 80 (HTTP) 上一切正常,但如果我尝试使用 https,则请求无法通过。

有什么想法吗?

干杯

【问题讨论】:

【参考方案1】:

您的 EC2 实例上是否有 HTTPS 侦听器?如果不是,您的两个负载均衡器侦听器的实例端口应为 80。

【讨论】:

【参考方案2】:

Elastic Load Balancer 无法将您的 HTTPS 请求转发到服务器。这就是 SSL 存在的原因:防止中间人攻击(以及其他人)

你可以得到这个工作的方式如下:

将您的 ELB 配置为接受 443 TCP 连接并通过 IAM 安装 SSL 证书(就像您所做的那样) 将 TCP 80 上的流量中继到您的 Web 服务器群 将您的 Web 服务器配置为接受 TCP 80 上的流量(负载平衡器和 Web 服务器之间也支持 SSL,但大多数时候不需要)

将您的 Web 服务器安全组配置为仅接受来自负载平衡器的流量。

(可选)确保您的 Web 服务器在私有子网中运行,即只有私有 IP 地址且没有到 Internet 网关的路由

如果您确实需要在客户端和后端服务器之间建立端到端 SSL 隧道(例如,执行客户端 SSL 身份验证),那么您必须将负载均衡器配置为 TCP 模式,不在 HTTP 模式下(有关详细信息,请参阅 Support for two-way TLS/HTTPS with ELB)

更多细节:

SSL 负载均衡器:http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/US_SettingUpLoadBalancerHTTPS.html VPC 中的负载均衡器: http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/UserScenariosForVPC.html

【讨论】:

太棒了,我不知道我可以在负载均衡器级别上使用 TCP 而不是 HHTPS,我还需要在安全组上添加端口 443,但现在就像一个魅力 这可能是一个转储问题,但我们是否也可以在服务中重用负载均衡器中的证书?

以上是关于AWS - 负载均衡器上的 SSL/HTTPS的主要内容,如果未能解决你的问题,请参考以下文章

EKS 上的网络负载均衡器与 AWS 负载均衡器控制器

服务器上的 AWS 负载均衡器、静态 IP 和 SSL 终止(不是负载均衡器)

AWS 应用程序负载均衡器上的 Websocket + SSL

408 HTTP 错误尝试使用负载均衡器访问 AWS 弹性 beanstalk 上的 https

没有自定义域的 AWS 上的 SSL 应用程序负载均衡器

HAProxy 上的哪些设置需要与 AWS ALB(应用程序负载均衡器)配合使用?