5

我有一个 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?

4

0 回答 0