У меня есть 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"