我有一个Kubernetes设置,其中Traefik是我的入口控制器 . Traefik是一个正在侦听SSL端口(TCP:443)的AWS ELB的后面,因此它可以使用ACM证书终止SSL . 然后它将负载 balancer 到跟踪TCP:80的traefik(在k8s中) . 我们需要这样设置,因为我们在traefik中基于每个入口进行白名单并使用代理协议标头来执行此操作(我们尝试在http负载均衡器上使用x-fowarded-for whitelisting但这很容易绕过) .

这适用于进入的HTTPS流量,但我想将http重定向设置为https . 到目前为止,我已经在负载均衡器上 Build 了一个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 .

有没有办法可以这样设置,以便所有访问traefik的流量:81被重写为https?