我有一个使用Kube
,Kops
和AWS
创建的AWS LoadBalancer 。
ELB 的协议类型为 tcp 。这项功能可以很好地处理http
的请求,这意味着我可以使用 http://testing.example.com 访问我的网站。现在,我尝试使用 ACM (Certificate manager)
为此 ELB 添加 SSL 。我通过请求公共证书添加了我的域详细信息example.com
和*.example.com
。它创建成功,域验证也成功。
然后我尝试将这个ssl添加到我的ELB中,如下所示。
和 ELB 描述如下。
我无法访问https://testing.example.com,它挂了几分钟,没有任何反应。这里发生了什么。希望您对此有所帮助。
答案 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阻止。