如何在ELB内部设置SSL,并与ELB外部的节点实例进行通信

我已经使用ELB之外的ELB,自动调节,RDS和一个节点ec2实例在AWS上创build了架构(希望它不应该是错误的)。 现在我没有得到,那我怎么能在这个架构上实现SSL。

让我简单解释一下:

  1. 我创build了一个经典的负载平衡器。
  2. 在自动缩放组上创build。
  3. 将实例分配给自动调整组。
  4. 最后,我创build了一个我正在使用的节点实例,这个负载平衡器和自动调整组是不在这个范围之内的。

现在,当我将SSL实现到负载均衡器时,内部实例正在与HTTP请求上的节点实例进行通信,并且由于节点实例位于负载平衡器之外,因此请求被阻止。

有人可以帮我实施这个架构的SSL。

对不起,如果你与我的架构混淆,如果有任何其他最好的架构可能,那么请让我知道我可以改变我的架构。

谢谢,

当您拥有静态内容时,您最好的select是使用S3存储桶作为其来源从Cloudfront提供。

关于SSL ,您可以在ELB级别设置SSL ,请按照文档 。

您的ELB侦听两个端口: 80443,并且只使用其开放端口80与您的ASG实例进行通信因此,当安全请求到达ELB时 ,会将其转发到您的服务器( ASG中的 EC2 )。 然后,监听端口80的服务器收到请求; 如果请求具有X-FORWARDED-PROTO HTTPS,则服务器不执行任何操作,否则将其设置并转发/重写URL为安全URL,并重新启动进程。

我希望这有助于并小心ERR_TOO_MANY_REDIRECTS

您是否考虑过使用具有两个目标组和侦听器规则的应用程序负载平衡器 ?

如果单个EC2实例只是托pipe静态内容,并且正在为公共path(例如/static )提供内容,则所有内容都可以位于共享负载均衡器的后面,并使用一个可以使用ACMconfiguration的公用证书。

“因为节点实例在负载均衡器之外,所以请求被阻止。”

如果它们在同一VPC中,则应检查已分配给实例的安全组。 具体而言,您希望允许从分配给负载均衡器实例的安全组访问独立实例上的端口443和/或80的连接 – 让我们称之为“sg-load_balancer”(检查您的AWS控制台查看实际的安全组ID是什么)。

要检查这一点 – select独立实例的安全组,请注意页面底部的选项卡。 点击“入站”标签。 您应该看到一组规则…您需要确保有一个用于HTTP和/或HTTPS的“源”,而不是将IP地址放在负载均衡器实例的安全组中 – 我们从sg-开始,控制台会给你一个下拉菜单来显示有效的input。

如果您没有看到负载均衡器实例的安全组,则很有可能它们不在同一个VPC中。 检查 – 调出控制台并在每个节点上查找VPC Id。 这将从vpc_开始。 这些应该是一样的。 如果没有,你将不得不build立规则和路由表,以允许他们之间的stream量…这是多一点涉及,看看类似的问题,以获得一些想法如何解决这个问题: 允许亚马逊VPC A得到到VPC B上的新私有子网?