2017-02-03 60 views
7

我正在尝试配置AWS应用程序负载平衡器(与经典负载平衡器)以将流量分发到我的EC2 Web服务器。出于合规性原因,我需要为我的应用程序端到端SSL/HTTPS加密。应用程序负载平衡器(ELBv2)SSL通过

在我看来,确保流量在客户端和Web服务器之间以完整方式加密的最简单方法是终止Web服务器上的HTTPS连接。

我的第一个问题:是否可以通过AWS Application Load Balancer将HTTPS流量通过负载均衡器以这种方式传递到负载均衡器后面的Web服务器?

从我从AWS文档收集的内容中,可以通过经典负载均衡器(通过TCP传递)以这种方式传递流量。但是,应用负载平衡器看起来像它想终止HTTPS连接本身,然后执行下列操作之一:

  • 将流量发送到网络服务器未加密的,我不能遵守的原因做
  • 创建一个新的HTTPS连接到Web服务器,这似乎是额外的工作负载

我的第二个问题:是理解文档正确吗?

+0

我还没有尝试过使用AWS,但我使用HaProxy生产服务器的SSL/HTTPS通过Nginx。 –

+0

我不知道是否将流量发送到未加密的Web服务器,这就是发生的情况。我会开始https://aws.amazon.com/blogs/aws/elastic-load-balancer-support-for-ssl-termination/或http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ configure-https-endtoend.html希望这有助于 –

+1

@MuqeetKhan如果您在负载平衡器上终止SSL并且没有在Web服务器上安装SSL证书,那么这正是发生的情况。如果Web服务器上没有SSL证书,负载平衡器和服务器之间的流量可能会如何加密? –

回答

13

终止Web服务器上的SSL连接需要您将负载均衡器侦听器从HTTPS更改为TCP。 ALB不支持这个,只有经典的ELB。此外,如果您在Web服务器上终止SSL,则负载平衡器将无法检查请求,因为它无法解密它,所以它将无法做到所有奇特的新路由选择ALB支持。

如果您确实想要使用ALB提供的新功能,并且您需要端到端加密,则必须在ALB处终止SSL,并在Web服务器上安装SSL证书。 Web服务器证书可能类似于自签名证书,因为只有ALB才会看到该证书,而不是客户端。

我假设您需要遵从法规(PCI,HIPAA等)的端到端加密。否则,没有一个非常有说服力的理由去解决它的麻烦。

+0

很好的答案,谢谢! –

+0

是的,我需要端到端加密以达到合规性原因。 –

+0

AWS已经通过负载平衡器发布了网络负载均衡器,直到实例/组/ ip,因此您可以使用nginx或任何带有SSL的实例,并且应该更快一些=) – pauricthelodger