SSL直通与Traefik(SSL passthrough with Traefik)

2019-11-05 04:33发布

我需要直接发送SSL连接到后端,无法解密在我Traefik。 后端需要接收HTTPS请求。

我试过traefik.frontend.passTLSCert = true选项,但得到“404页找不到”错误,当我访问我的web应用程序,也得到Traefik容器此错误

traefik       | time="2018-09-16T10:47:41Z" level=error msg="Failed to create TLSClientConfig: no TLS provided"
traefik       | time="2018-09-16T10:47:41Z" level=error msg="Failed to create RoundTripper for frontend frontend-Host-dev-mydomain-com-0: no TLS provided"
traefik       | time="2018-09-16T10:47:41Z" level=error msg="Skipping frontend frontend-Host-dev-mydomain-com-0..."

你可以提出任何解决办法吗? 谢谢。

我使用Traefik版本1.6.6。

这里是我的搬运工,compose.yml的应用程序容器。

version: '3'
services:
  app:
    image: webdevops/php-nginx-dev:7.2
    networks:
      - proxy
    volumes:
      - ./:/app
      - ../traefik/ssl/*.mydomain.com.crt:/opt/docker/etc/nginx/ssl/server.crt
      - ../traefik/ssl/*.mydomain.com.key:/opt/docker/etc/nginx/ssl/server.key
    environment:
      - WEB_DOCUMENT_ROOT=/app
    labels:
      - traefik.enable=true
      - traefik.frontend.rule=Host:dev.mydomain.com
      - traefik.docker.network=proxy
      - traefik.port=443
networks:
  proxy:
    external: true

我Traefik集装箱的码头工人,compose.yml。

version: "3"
services:
  traefik:
    image: traefik
    container_name: traefik
    command:
      - --api
      - --docker
      - --docker.exposedbydefault=false
    restart: always
    ports:
      - 80:80
      - 443:443
    networks:
      - proxy
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik.toml:/traefik.toml
      - ./ssl:/sslcert
networks:
  proxy:
    external: true

最后,我traefik.toml文件。

debug = true
logLevel = "ERROR"
defaultEntryPoints = ["http","https"]

[entryPoints]
  [entryPoints.http]
  address = ":80"
  [entryPoints.https]
  address = ":443"
  [entryPoints.https.tls]
    [[entryPoints.https.tls.certificates]]
      certFile = "/sslcert/*.mydomain.com.crt"
      keyFile = "/sslcert/*.mydomain.com.key"

[retry]

Answer 1:

passTLSCert转发TLS客户端证书到后端,也就是,在TLS握手发送证书的客户机来证明它的身份。

Traefik是一个HTTP反向代理。 要直接与后端建立SSL连接,你需要反向代理TCP和他不是HTTP,traefik不(没?)支持TCP(但也有认为在GitHub上的问题)。

Traefik将不适合你的用例,也有不同的选择, 特使是其中之一。



Answer 2:

Traefik现在已经在其新版本2.0 TCP支持 - 这仍然是在阿尔法在这个时候(2019年4月)。

见PR https://github.com/containous/traefik/pull/4587
和在V2.0.0-α1的发布说明https://github.com/containous/traefik/releases/tag/v2.0.0-alpha1被包括示出该TCP支持PR

因此,一旦2.0发布(大概2-3个月内),HTTPS直通将成为可能。



文章来源: SSL passthrough with Traefik
标签: traefik