端口443上的Traefik HTTPS后端发生内部服务器错误

时间:2018-03-21 16:58:19

标签: traefik

使用docker,我尝试使用HTTPS端口443设置traefik后端,因此traefik容器和app容器(apache 2.4)之间的通信将被加密。

如果我在docker容器上激活Internal Server Errortraefik.protocol=https,我会收到traefik.port=443。此问题已在此处记录: https://github.com/containous/traefik/issues/2770#issuecomment-374926137

jwidler/nginx-proxy(在docker hub上可用的反向代理)完全相同的设置工作非常好。容器上的证书(内部运行的apache 2.4)是真正签名的(我将它们安装在traefik和我的容器的apache上)。如果我用https://直接请求我的apache容器...所有浏览器都说证书有效(绿色)。所以容器中的证书都可以。

问题很简单: 使用InsecureSkipVerify = true并不安全。 是否有任何生产解决方案能够通过使用由知名机构(在我的案例中为Gandi或Comodo)颁发的证书,使标签traefik.protocol=httpstraefik.port=443成为容器后端。< / p>

感谢。

3 个答案:

答案 0 :(得分:6)

我猜您可能需要添加

InsecureSkipVerify = true

在主/全球部分

请参阅https://docs.traefik.io/configuration/commons/,其中说明:

InsecureSkipVerify : If set to true invalid SSL certificates are accepted for backends.
Note: This disables detection of man-in-the-middle attacks so should only be used on secure backend networks.

答案 1 :(得分:0)

我仅通过设置InsecureSkipVerify = true公开了Kubernetes仪表板。这是我将其添加到traefik部署文件中的方式(最后一行):

spec:
  serviceAccountName: traefik-ingress-controller
  terminationGracePeriodSeconds: 60
  containers:
  - image: traefik
    name: traefik-ingress-lb
    ports:
    - name: https
      containerPort: 443
    args:
    - --api
    - --kubernetes
    - --logLevel=INFO
    - --defaultentrypoints=https
    - --entrypoints=Name:https Address::443 TLS
    - --insecureSkipVerify=true

答案 2 :(得分:0)

对我来说,问题是traefik.protocol=https;启用https并不是必须的,它直接导致了500