ssl - 使用 Traefik Ingress Controller 允许单个入口运行 HTTP 而无需强制使用 SSL

标签 ssl kubernetes traefik kubernetes-ingress traefik-ingress

我通过 helm chart 将 Traefik 设置为我的 Ingress Controller 在版本 1.5.4 上。我启用了 LetsEncrypt 并将 SSL 设置为 Enforced,因此我所有公开的服务都根据需要强制使用 SSL。

我最近遇到了一种情况,我需要在单个入口上强制使用 SSL。我已经尝试了我能找到的每一个注释,但我能得到的最多是一个重定向循环(http -> https -> http)让我相信 SSL 仍然是强制执行的。

有没有人设法通过注释让它运行? Here是 1.5 的注释谢谢!

我当前部署的 Ingress:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  creationTimestamp: 2018-09-18T05:52:41Z
  generation: 1
  labels:
    app: prerender
    chart: prerender-0.4.0
    heritage: Tiller
    release: prerender
  name: prerender-prerender
  namespace: production-prerender-io
  resourceVersion: "41421557"
  selfLink: /apis/extensions/v1beta1/namespaces/production-prerender-io/ingresses/prerender-prerender
  uid: 0e8a1286-bb07-11e8-9938-06e82a01885c
spec:
  rules:
  - host: prerender.mydomain.com
    http:
      paths:
      - backend:
          serviceName: prerender-prerender
          servicePort: 3000
        path: /
status:
  loadBalancer: {}

最佳答案

这不受 Kubernetes 支持在单个 Ingress 上。换句话说,一旦你在 Ingress 上使用 TLS,你就无法返回。入口如下:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myingress
spec:
  tls:
  - secretName: mytlssecret
  backend:
    serviceName: service1
    servicePort: 80

如果有这样的东西就好了:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myingress
spec:
  tls:
  - secretName: mytlssecret
  backend:
    serviceName: service1
    servicePort: 80
    tlsFrontend: false

已创建 this看看它是否会发生。我想解决方法是创建另一个 Ingress。

编辑:

Traefik helm chart 使用 letsencrypt 专门配置 Traefik,因此在这种情况下,Traefik 必须通过后端注释专门支持非 TLS 后端。

关于ssl - 使用 Traefik Ingress Controller 允许单个入口运行 HTTP 而无需强制使用 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52440562/

相关文章:

linux - SSL 的 Nginx 配置

kubernetes - kubernetes 中的多个 liveness 探测

nginx - 使用 Nginx Ingress Controller 添加对 413 状态代码的自定义响应

kubernetes - gke 上的 traefik 设置不起作用

ssl - 使用org.apache.commons.httpclient时如何忽略ssl认证?

php - 使用 laravel 5.1 在实时服务器中发送电子邮件时遇到问题

kubernetes - 如何将GKE的群集自动缩放器日志导出到外部日志服务?

docker - Traefik/Docker:使用端口作为前端规则(而不是路径或子域)

docker - Traefik的ProxyPass/ProxyPassReverse

ssl - 为什么我的wss ://(WebSockets over SSL/TLS) connection immediately disconnect without giving any errors?