Traefik 2.0 TLS TCP сквозной - PullRequest
       12

Traefik 2.0 TLS TCP сквозной

0 голосов
/ 16 марта 2020

У меня есть VM0, где Traefik работает как docker, и две целевые системы VM1 и VM2, на которых работает веб-сервер.

Все запросы domainA.com должны go к VM1 через TCP-маршрутизатор и tls passthrough, поскольку этот веб-сервис обрабатывает сами сертификаты.

Все запросы domainB.com должны go к VM2 через http-маршрутизатор, а Traefik должен генерировать сертификаты tls для этого домена.

Моя проблема в том, что, как только я добавляю конфигурацию tls к маршрутизатору http, кажется, что tcp passthrough больше не работает. В журналах я вижу такие сообщения:

time = "2020-03-15T21: 46: 18Z" level = debug msg = "Обслуживание сертификата по умолчанию для запроса: \" subdomain.DomainA.com \ "" time = "2020-03-15T21: 46: 18Z" level = debug msg = "http: ошибка квитирования TLS от 192.168.1.116:55103: удаленная ошибка: tls: неизвестный сертификат" time = "2020-03-15T21: 46: 18Z "level = debug msg =" Обслуживание сертификата по умолчанию для запроса: \ "subdomain.DomainA.com \" "time =" 2020-03-15T21: 46: 18Z "level = отладка msg =" http: ошибка рукопожатия TLS от 192.168.1.116:55104: удаленная ошибка: tls: неизвестный сертификат "

И если я захожу на сайт через Traefik, он показывает мне самозаверяющий сертификат от Traefik.

Если Затем я удаляю все настройки tls под http-маршрутизатором, passthrough снова работает.

My Dynami c Файл:

http:
  routers:

    HTTProuter0:
      rule: "HostRegexp(`{subdomain:[a-z]+}.domainA.com`)"
      service: "domainA"
      entryPoints:
       - "websecure"
      tls:
        certResolver: "myresolver"
        domains:
         - main: "domainA.com"
           sans:
           - "*.domainA.com"
  services:

    domainA:
      loadBalancer:
        servers:
          - url: "https://192.168.1.13:4433"

tcp:
  routers:
    TCProuter0:
      rule: "HostSNI(`*`)"
      service: "domainB"
      entryPoints:
       - "websecure"
      tls:
       passthrough: true

  services:
    domainB:
      loadBalancer:
        servers:
         - address: "192.168.1.11:443"

Мои данные c файл:

serversTransport:
  insecureSkipVerify: true

entryPoints:
  web:
    address: ":80"

  websecure:
    address: ":443"

  spain:
    address: ":4443"

certificatesResolvers:
  myresolver:
    acme:
      email: email@email.com
      storage: /etc/traefik/acme/acme.json
      dnsChallenge:
        provider: cloudflare
        delayBeforeCheck: 60
        resolvers:
          - "1.1.1.1:53"
          - "8.8.8.8:53"

api:
 insecure: true
 dashboard: true

providers:
 docker: {}
 file:
  directory: /etc/traefik/config
  watch: true

log:
  filePath: /etc/traefik/traefik.log
  level: DEBUG

Я застрял в этой проблеме на несколько часов. Я не уверен, что это ошибка или я что-то не так делаю?

Любая помощь будет очень признательна!

Большое спасибо

1 Ответ

0 голосов
/ 26 марта 2020

Я нашел проблему. Невероятно, я потратил столько времени на это ... Кажется, что Traefik не поддерживает подстановочные знаки в комбинации с доменами в HostSNI.

HostSNI(`*`) => Работает

HostSNI(`*.mydomain.com`) => DOESN ' T WORK !!!!

HostSNI(`www.mydomain.com`,`web.mydomain.com`) => Работа

Итак, я добавил каждый домен явным образом, и теперь он работает.

...