添加的SSL不适用于使用ACM的AWS Load Balancer

时间:2018-07-02 15:21:41

标签: amazon-web-services ssl kubernetes ssl-certificate elastic-load-balancer

我有一个使用KubeKopsAWS创建的AWS LoadBalancer ELB 的协议类型为 tcp 。这项功能可以很好地处理http的请求,这意味着我可以使用 http://testing.example.com 访问我的网站。现在,我尝试使用 ACM (Certificate manager)为此 ELB 添加 SSL 。我通过请求公共证书添加了我的域详细信息example.com*.example.com。它创建成功,域验证也成功。

  

然后我尝试将这个ssl添加到我的ELB中,如下所示。

  • 去我的ELB并选择了ELB。
  • 然后转到“侦听器”选项卡,并如下所示向其添加SSL。

enter image description here

ELB 描述如下。

enter image description here

我无法访问https://testing.example.com,它挂了几分钟,没有任何反应。这里发生了什么。希望您对此有所帮助。

2 个答案:

答案 0 :(得分:2)

在侦听器配置中,您正在将默认的HTTP端口80转发到后端服务器上的端口30987。因此,这告诉我后端服务器正在侦听端口30987上的HTTP请求。

然后,您在默认端口443上添加了SSL侦听器,但是将其转发到后端服务器上的端口443。除了443之外,您还在后端30987上监听端口吗?

最可能的解决方法是,将负载平衡器上的SSL侦听器设置为“实例端口”设置,以转发到后端的端口30987

答案 1 :(得分:0)

如果后端应用程序(位于ELB后面)仅在HTTP端口30987上侦听,则您需要在应用程序服务器之前使用TLS终止层。 关于此方法的更多思考: https://security.stackexchange.com/questions/30403/should-ssl-be-terminated-at-a-load-balancer

或者您需要调整后端应用服务器,以在另一个端口(必须在ELB配置中映射)的HTTPS / TLS上下文中侦听。

顺便说一句,我也建议切换到ALB或NLB。 更多信息:https://medium.com/cognitoiq/how-cognitoiq-are-using-application-load-balancers-to-cut-elastic-load-balancing-cost-by-90-78d4e980624b

完成所有选择的建议的设置后,运行curl -k -I https://testing.example.com/检查是否被ELB阻止。