【问题标题】:added SSL does not work for AWS Load Balancer using ACM添加的 SSL 不适用于使用 ACM 的 AWS 负载均衡器
【发布时间】:2018-12-10 20:49:20
【问题描述】:

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

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

  • 去了我的 ELB 并选择了 ELB。
  • 然后转到 Listeners 选项卡并添加 SSL,如下所示。

ELB描述如下。

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 嗨@Mark B 我试过了。然后它说Failed to create listener on port: 443. Listeners can't talk to InstancePort 30987 with secure and insecure protocols at the same time
    • 然后我尝试将30987 添加为Instance PortInstance Protocol 作为TCPLoad Balancer ProtocolLoad Balancer Port 保持原样SSL443。它允许我添加它,但结果相同。它不起作用。花了很多时间来响应并失败了。
    • 我不知道为什么它会给你那个错误信息,但我认为你需要将第一个侦听器更改为 HTTP 而不是 TCP。然后将 HTTPS 改回指向30987。显然,使用 443 的实例端口不会起作用,因为您在后端服务器上的该端口上没有任何监听。
    • 更改为HTTP 然后默认端口80 工作正常。然后将HTTPSInstance Protocol 添加为HTTPS30987。然后它说Failed to create listener on port: 443. Listeners can't talk to InstancePort 30987 with secure and insecure protocols at the same time。然后添加HTTPSInstance Protocol 作为HTTP 和端口30987。它允许我添加但与上面相同。挂了很多时间和超时。 ;)
    • 我想我忽略了细节,因为它们对我来说很明显,但是对于负载均衡器上配置的两个侦听器,实例协议和实例端口应该是 HTTP 和 30987。你是说那个配置会超时吗?
    【解决方案2】:

    如果您的后端应用程序(位于 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 阻止。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-05
      • 2016-02-10
      • 2019-01-02
      • 2015-01-13
      • 2018-06-30
      • 1970-01-01
      • 2019-04-10
      相关资源
      最近更新 更多