使用docker,我尝试使用HTTPS端口443设置traefik后端,因此traefik容器和app容器(apache 2.4)之间的通信将被加密。
如果我在docker容器上激活Internal Server Error
和traefik.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=https
和traefik.port=443
成为容器后端。< / p>
感谢。
答案 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
。