【问题标题】:Nginx 400, A plain http response was sent to HTTPS port with nginx-ingress controllerNginx 400,使用 nginx-ingress 控制器将普通的 http 响应发送到 HTTPS 端口
【发布时间】:2021-08-15 16:40:23
【问题描述】:

我已经使用来自工件中心 (https://artifacthub.io/packages/helm/ingress-nginx/ingress-nginx) 的 helm 图表在 aws eks 集群中部署了一个 nginx-ingress 控制器。

我已经编辑了注释以在 aws 中使用 NLB,在部署后,如果 ingress-nginx 和入口控制器后面的应用程序,NLB 后面的应用程序工作正常但服务于不安全模式(无 ssl),然后我将nlb的listner端口从tcp改为tls,并附上ssl证书。

现在,在此更改之后,我的应用程序能够在 ssl 上运行,但出现 “Nginx 400, A plain http response was sent to HTTPS port”的错误

谁能帮助我理解这个问题以及解决这个问题的潜在选择。

值和配置几乎是我们从这里“https://artifacthub.io/packages/helm/ingress-nginx/ingress-nginx”获取的默认值

【问题讨论】:

    标签: amazon-web-services nginx ssl kubernetes ingress-controller


    【解决方案1】:

    如果您从 ACM(AWS 证书管理器)附加 LB 级别的 SSL/TLS 证书

    您必须创建两个侦听器,TCP 与端口 80TLS443 端口连接必要的 certTLS 侦听器中。

    您还可以阅读更多内容:https://aws.amazon.com/premiumsupport/knowledge-center/terminate-https-traffic-eks-acm/

    在上面的示例中,它使用 CLB,但是同样的步骤将应用于 NLB 以通过 LB 附加证书。

    【讨论】:

    • 嗨@Harsh,感谢您的评论,但我的问题不是关于如何附加 SSL 证书,我的问题是,每当我附加 SSL 证书时,我都会收到错误消息“A plain http response已发送到 HTTPS 端口”。此外,我的 NLB 中已经有 80 和 443 的监听器
    猜你喜欢
    • 2015-09-08
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 2021-11-09
    • 2020-11-06
    • 2019-03-05
    • 2021-11-13
    相关资源
    最近更新 更多