负载平衡器,EC2 – HTTPS连接

好吧,这可能是一个菜鸟问题,但这是我的情况。

  1. 目前,我有一个pipe理单个EC2实例的负载平衡器。
  2. 我有一个应用程序在该EC2实例上运行。

我喜欢做什么:1.一个完整的HTTPS连接到我的EC2应用程序,目前绑定到8080。

什么是实现它的正确方法? 1.我应该只上传一个SSL证书到负载均衡器,强制客户端和负载均衡器之间的SSL连接? 我应该让负载均衡器和EC2之间的stream量受到安全组的保护吗?

要么 –

  1. 我是否需要使用另一个证书configuration我的tomcat Web应用程序服务器,并使用keystorepathconfiguration其443 https连接器,并将HTTP连接redirect到443端口?

要么 –

有什么我失踪谢谢,

您需要的最简单的configuration可能是:

  1. 设置你的Tomcat作为HTTP在端口8080上侦听
  2. 上传您的SSL证书到ELB,并设置您的ELB来终止SSL。
  3. 将ELB上的端口443转发到您的实例上的端口8080。
  4. 将您的EC2安全组configuration为只接受端口8080上的ELB安全组的连接。这样,没有人可以规避您的ELB。

这将从您的EC2实例卸载encryption到ELB。

可选额外:

  1. 还将ELB上的HTTP端口80转发到tomcat上的另一个端口,并将HTTPredirect到HTTPS。

这样,如果您的客户端通过HTTP连接,它们将自动redirect到HTTPS。

通常你的负载平衡器会处理与你的客户端的https连接,然后它将连接回原始的tomcat服务器,以便通过普通的http获得内容(因为没有太多的需要encryption短暂的跳跃,大概是你可以信任本地networking)。 您应该设置您的负载均衡器将其接收到的任何http请求redirect到https,并且您只需要在负载均衡器上设置https证书。 对于tomcat后端,您需要确保所有链接都是相对的,或者告诉客户端去https。

我不是100%确定这是否是你以后的事情,所以让我知道是否有什么不同,你想知道。

我认为接受的答案是不正确的。 将SSL证书上载到负载均衡器并询问HTTPS通道将导致负载均衡器解密SSLstream量,并在负载均衡器后面解密SSLstream量。 (OP向应用程序要求SSL)。

根据ELB文档

“如果您不希望负载平衡器处理SSL终止(称为SSL卸载),则可以将TCP用于前端和后端连接,并在注册的实例处理请求上部署证书。

所以,正确的做法是转发TCP:443(在负载均衡器) – > TCP:443(在实例或其他端口)。

如果您想要端到端encryption,则必须在应用程序服务器上安装SSL密钥。

这也意味着ELB不能摆弄你的HTTPS头 – 我认为这是粘性连接所需要的。 对于无状态的应用程序服务器来说,这是一个非问题。