Трафик с Let's Encrypt пытается запросить сертификат для localhost - PullRequest
0 голосов
/ 27 мая 2019

У меня есть Traefik (traefik: 1.7.11-alpine), работающий в контейнере Docker с несколькими службами, использующими Let's Encrypt, для запроса сертификатов для их защиты. Это работает как шарм.

У меня также включена веб-консоль Treafik, но она недоступна для внешнего мира. Другими словами, он работает на локальном хосте. В файле журнала я вижу, что Traefik пытается запросить сертификат для localhost. Это нормально? Могу ли я отключить это?

Это сообщение об ошибке

time="2019-05-27T07:03:45Z" level=error msg="Unable to obtain ACME certificate for domains \"localhost\" detected thanks to rule \"PathPrefixStrip:/traefik;Host:localhost\" : unable to generate a certificate for the domains [localhost]: acme: error: 400 :: POST :: https://acme-v02.api.letsencrypt.org/acme/new-order :: urn:ietf:params:acme:error:malformed :: Error creating new order :: DNS name does not have enough labels, url: "

Что мне показалось странным, так это то, что веб-консоль работает на 8080 и не связана с точкой входа https в любом случае. Так что я бы предположил, что Traefik проигнорирует это при определении того, для какой конечной точки он должен запрашивать сертификаты.

Это конфиг, который я использую:

logLevel = "DEBUG"

[traefikLog]

[accessLog]
  [accessLog.filters]
    statusCodes = ["0-600"]

[entryPoints]
  [entryPoints.http]
    address = ":80"
    [entryPoints.http.redirect]
        entryPoint = "https"

  [entryPoints.https]
    address = ":443"
    [entryPoints.https.tls]
      minVersion = "VersionTLS12"
      cipherSuites = [
        "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
        "TLS_RSA_WITH_AES_256_GCM_SHA384"
      ]

  [entryPoints.traefik]
    address=":8080"
    [entryPoints.traefik.auth]
      [entryPoints.traefik.auth.basic]
        users = ["admin:$apr1$HR4Hj/Zy$fPwTS8LMBqKPpzdzGkyTa/"]

[api]
  entrypoint="traefik"
  dashboard = true
  debug = false

[docker]
  watch = true
  exposedbydefault = false
  domain = "domain.com"
  network = "web"

[acme]
  email = "info@domain.com"
  storage = "acme.json"
  entryPoint = "https"
  onHostRule = true
  [acme.httpChallenge]
    entryPoint = "http"

1 Ответ

0 голосов
/ 02 июня 2019

Просто документирование решения для всех, кто сталкивается с этой проблемой.В примерах Traefik Docker Compose установлена ​​метка traefik.enable=true, которая заставляет Traefik пытаться запросить сертификат для службы, если вы включите Let's Encrypt.Даже для localhost :-( Установка значения false решает проблему.

...