AWS 网络负载均衡器和 HTTPS 端点

AWS Network Load Balancer and HTTPS endpoint

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

我创造了

  1. 网络类型的负载均衡器。
  2. 我的应用程序的一个目标组(端口 3000 / TCP)
  3. 端口 443 的一个侦听器,协议为 TLS,作为默认操作,我将转发到上一个目标组。我还添加了我的域的证书。
  4. 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 从客户端到负载均衡器。

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