Давайте зашифруем с Traefik

Я пытаюсь использовать Let's Encrypt с Traefik, но вот журнал Traefik:

Looking for provided certificate to validate [rancher.foo.bar]...
No provided certificate found for domains [rancher.foo.bar], get ACME certificate.
Looking for an existing ACME challenge for rancher.foo.bar...
No certificate found or generated for rancher.foo.bar
http2: server: error reading preface from client 1.2.3.4:60876: remote error: tls: unknown certificate authority

Вот мой конфиг:

traefikLogsFile = "/tmp/traefik.log"
logLevel = "DEBUG" # DEBUG, INFO, WARN, ERROR, FATAL, PANIC
[accessLog]
filePath = "/tmp/access.log"


[entryPoints]
  [entryPoints.http]
  address = ":80"
    [entryPoints.https]
    address = ":443"
      [entryPoints.https.tls]

# Enable ACME (Let's Encrypt): automatic SSL.
[acme]
email = "[email protected]"
storage = "/tmp/acme.json"
entryPoint = "https"
onHostRule = true
[acme.httpChallenge]
entryPoint = "http"


[api]
entryPoint = "traefik"
dashboard = true


[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "foo.bar"
watch = true
exposedbydefault = true
usebindportip = true
swarmmode = false

Провайдеры Traefik:

{
  "docker": {
    "backends": {
      "backend-rancher": {
        "servers": {
          "server-rancher": {
            "url": "http://172.17.0.3:8080",
            "weight": 0
          }
        },
        "loadBalancer": {
          "method": "wrr"
        }
      }
    },
    "frontends": {
      "frontend-Host-rancher-foo-bar-0": {
        "entryPoints": [
          "http"
        ],
        "backend": "backend-rancher",
        "routes": {
          "route-frontend-Host-rancher-foo-bar-0": {
            "rule": "Host:rancher.foo.bar"
          }
        },
        "passHostHeader": true,
        "priority": 0,
        "basicAuth": []
      }
    }
  }
}

Что не так?
Спасибо


person mykiwi    schedule 08.02.2018    source источник
comment
Фактически, нам нужно больше журналов, чтобы понять вашу проблему. В журналах написано, что ваш сертификат никогда не создавался. Вы включили onHostRule, у вас есть серверная часть с правилом Host для foo.bar.baz?   -  person Julien SALLEYRON    schedule 08.02.2018
comment
Я обновил свое сообщение и добавил провайдеров traefik   -  person mykiwi    schedule 08.02.2018
comment
Не могли бы вы добавить свою полную конфигурацию TOML?   -  person ldez    schedule 08.02.2018
comment
Хорошо, я обновил свою конфигурацию   -  person mykiwi    schedule 08.02.2018


Ответы (2)


Вы используете onHostRule, это запросит сертификат у Let's Encrypt для каждого интерфейса с правилом Host. Но вам нужно, чтобы ваш фронтент был назначен точке входа TLS ACME. (здесь https).

Итак, в ярлыках докеров вам нужно добавить https в frontend.entrypoint.

person Julien SALLEYRON    schedule 11.02.2018
comment
Хорошо, у меня получается вот так: --label traefik.protocol=http --label traefik.frontend.entryPoints=https - person mykiwi; 11.02.2018

Не могли бы вы добавить:

defaultEntryPoints = ["http", "https"]

в верхней части вашего файла TOML.

person ldez    schedule 08.02.2018
comment
Я сделал это, результат тот же. - person mykiwi; 08.02.2018