малина / докер роу / трафик / портьер и без HTTPS - PullRequest
0 голосов
/ 19 февраля 2019

Последние 3 дня я потратил на попытки использовать traefik для HTTPS, балансировщика нагрузки, а также для подключения portainer и других док-контейнеров в режиме роя.Это кластер домашнего сервера, состоящий из 4-х малинов, и мне нужна функция авто-сертификата SSL и перенаправление HTTP на HTTPS.Для этого я создал файл traefik.toml:

    logLevel = "DEBUG"
    defaultEntryPoints = ["http", "https"]

    [web]

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

    [acme]
      email = "xxx@xxx.com"
      storage = "acme.json"
      entryPoint = "https"
      OnHostRule = true

    [acme.httpChallenge]
      entryPoint = "http"

    [docker]
      domain = "traefik" #<---- WHAT SHOULD I WRITE HERE?
      watch = true
      swarmmode = true

Я не знаю, что мне писать в переменной DOMAIN.Я использую NoIP в качестве моего динамического DNS-провайдера.Должен ли я написать домен, который я получу от них?и что должно работать внутри моей сети?т.е. доступ с компьютера в моей сети с: 192.168.11.100

И у меня также есть файл docker-compose.yml:

version: "3.4"
services:
  proxy:
    image: traefik:latest
    command:
      - "--api"
      - "--entrypoints=Name:http Address::80 Redirect.EntryPoint:https"
      - "--entrypoints=Name:https Address::443 TLS"
      - "--defaultentrypoints=http,https"
      - "--acme"
      - "--acme.storage=/etc/traefik/acme/acme.json"
      - "--acme.entryPoint=https"
      - "--acme.httpChallenge.entryPoint=http"
      - "--acme.onHostRule=true"
      - "--acme.onDemand=false"
      - "--acme.email=xxx@xxx.com"
      - "--docker"
      - "--docker.swarmMode"
      - "--docker.domain=traefik.localhost" <- WHAT SHOULD I PUT IN HERE??
      - "--docker.watch"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /mnt/traefik/acme.json:/etc/traefik/acme/acme.json
    networks:
      - appnet
    ports:
      - target: 80
        published: 80
        mode: host
      - target: 443
        published: 443
        mode: host
      - target: 8080
        published: 8080
        mode: host
    deploy:
      mode: global
      placement:
        constraints:
          - node.role == manager
      update_config:
        parallelism: 1
        delay: 10s
      restart_policy:
        condition: on-failure
networks:
  appnet:
    external: true

Развернуть стек, затем я пишу в Firefox вдругой компьютер 192.168.11.100, и я вижу «Добро пожаловать на страницу nginx».Нет HTTPS, кстати.Попробуйте 192.168.11.100:8080 для панели инструментов traefik.Он есть, но опять-таки только HTTP.

Если я разверну Portainer, похоже, что он соединяется с traefik (по крайней мере, на панели инструментов), но опять-таки только HTTP.

Вот журналы дляконтейнер traefik после развертывания portainer:

time="2019-02-19T11:32:52Z" level=error msg="Unable to obtain ACME certificate for domains \"portainer.com\" detected thanks to rule \"Host:portainer.com\" : unable to generate a certificate for the domains [portainer.com]: acme: Error -> One or more domains had a problem:\n[portainer.com] acme: error: 403 :: urn:ietf:params:acme:error:unauthorized :: Invalid response from http://portainer.com/.well-known/acme-challenge/eDN0Z2VJRzuZm9wiAbar1BOVHLPJ5qPYKBpwfuJOtdY: \"<!doctype html><html><head><meta charset=\\\"utf-8\\\"><meta http-equiv=\\\"x-ua-compatible\\\" content=\\\"ie=edge\\\"><meta name=\\\"viewport\\\" cont\", url: \n"
time="2019-02-19T11:33:15Z" level=error msg="Unable to obtain ACME certificate for domains \"portainer.com\" detected thanks to rule \"Host:portainer.com\" : unable to generate a certificate for the domains [portainer.com]: acme: Error -> One or more domains had a problem:\n[portainer.com] acme: error: 403 :: urn:ietf:params:acme:error:unauthorized :: Invalid response from http://portainer.com/.well-known/acme-challenge/Of6CWm4zvCdPo0BFPTxapEVXPU-qf7hhl1f6NCUTmQw: \"<!doctype html><html><head><meta charset=\\\"utf-8\\\"><meta http-equiv=\\\"x-ua-compatible\\\" content=\\\"ie=edge\\\"><meta name=\\\"viewport\\\" cont\", url: \n"

Я что-то упустил?

...