AWS 网络负载均衡器和 HTTPS 端点 [关闭]

Posted

技术标签:

【中文标题】AWS 网络负载均衡器和 HTTPS 端点 [关闭]【英文标题】:AWS Network Load Balancer and HTTPS endpoint [closed] 【发布时间】:2021-12-19 20:47:48 【问题描述】:

我正在学习 AWS 中的网络负载均衡器,但我一直在尝试使用安全层连接。

我创造了

    网络类型的负载均衡器。 我的应用程序的一个目标组(端口 3000 / TCP) 端口 443 的一个侦听器,带有协议 TLS,作为默认操作,我将转发到前一个目标组。我还添加了我的域的证书。 route53 中负载均衡器的别名

我期望的是,如果我输入 https://www.this-is-an-example.com:443/home 它应该代理到我的应用程序(在端口 3000 中运行)但保持安全连接或使用 https。但它不起作用。

当我执行curl https://www.this-is-an-example.com:443/home 时,我收到以下回复:curl: (52) Empty reply from server

如果我尝试使用 Postman Error: socket hang up

我知道网络负载均衡器不关心 https,但是,我如何在我的域中使用 https 并能够点击侦听器并利用 https 从客户端到负载均衡器。

【问题讨论】:

您能解释一下您遇到的错误是什么以及您是否在目标组的目标实例上定义了任何安全组? “但它不起作用。” - 不具体。到底发生了什么?有什么错误,有截图吗? @Marcin 你是对的!我的错。我将错误添加到原始消息中。谢谢。 @RezaNasiri 该服务有一个包含 443 规则的 SG。这就是您要问的吗?谢谢! 【参考方案1】:

问题在于您的安全组。您不能将安全组关联到网络负载均衡器,并且由于它们在第 4 层运行,因此您必须确保您的目标实例具有允许从 NLB/客户端访问目标的适当安全组。这取决于您使用的是实例目标类型还是 IP 目标类型。在实例目标类型中,源将是实际客户端,端口应该是目标端口(3000)而不是 443。在 IP 目标类型的情况下,源将是 NLB 的 IP,目标端口又是您的目标端口。您可以获取更多详细信息here

【讨论】:

以上是关于AWS 网络负载均衡器和 HTTPS 端点 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用 java 访问 AWS ECS 负载均衡器端点

在 aws 弹性负载均衡器上无法让 https 使用自签名证书

如何配置 AWS 网络负载均衡器以使用 Terraform 路由 HTTPS 流量?

AWS EC2服务器的HTTPS负载均衡器配置过程

如何从私有 AWS ALB 公开 API 端点

使用 aws Autoscaling 组直接附加应用程序负载均衡器/网络负载均衡器