我有一个 Kubernetes 设置,其中 Traefik 是我的入口控制器。Traefik 位于 AWS ELB 后面,该 ELB 正在侦听 SSL 端口 (TCP:443),因此它可以使用 ACM 证书终止 SSL。然后它将负载平衡到侦听 TCP:80 的 traefik(在 k8s 中)。我们需要这个设置,因为我们在 traefik 中基于每个入口将白名单列入白名单,并使用代理协议头来执行此操作(我们尝试在 http 负载均衡器上使用 x-fowarded-for 白名单,但这很容易绕过)。
这适用于传入的 HTTPS 流量,但我想将 http 重定向设置为 https。到目前为止,我已经在负载平衡器上设置了一个 TCP:80 侦听器转发到 TCP:81。我还使用配置文件设置了我的 Traefik 入口点:
defaultEntryPoints = ["http"]
debug = false
logLevel = "INFO"
# Do not verify backend certificates (use https backends)
InsecureSkipVerify = true
[entryPoints]
[entryPoints.http]
address = ":80"
compress = true
[entryPoints.http.proxyProtocol]
insecure = true
trustedIPs = ["10.0.0.0/8"]
[entryPoints.redirect]
address = ":81"
compress = true
[entryPoints.http.redirect]
entryPoint = "http"
然而,这给出了一个
400 Bad Request
当我尝试在 :80 访问任何服务时。
我认为这是因为要使此方法起作用,traefik 本身需要有一个 SSL 侦听器,而不是 ELB。
有没有办法可以设置,以便在 :81 上点击 traefik 的所有流量都被重写为 https?