Точки входа Traefik и сертификат по умолчанию - PullRequest
0 голосов
/ 31 октября 2018

Вопрос 1

https://docs.traefik.io/configuration/entrypoints/#default-certificate, по-видимому, указывает на то, что если я не укажу certFile или keyFile, Traefik сгенерирует самозаверяющий сертификат и будет использовать вместо него.

Для каждой точки входа может быть установлен только один сертификат по умолчанию. Используйте один набор квадратных скобок [] вместо двух, необходимых для обычных сертификатов. Если сертификат по умолчанию не предоставлен, Traefik сгенерирует самозаверяющий сертификат и будет использовать его вместо него.

Однако, когда я пытаюсь это сделать и введите https://localhost/whoami, я получаю ошибку SSL от Chrome (ERR_SSL_PROTOCOL_ERROR). Логи также показывают level=error msg="failed to load X509 key pair: tls: failed to find any PEM data in certificate input". Я неправильно понял конфигурацию в этой документации?

Это код, который я должен проверить.

test.yml

version: '3.6'
services:
  traefik:
    image: traefik
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik/traefik.toml:/etc/traefik/traefik.toml
    deploy:
      placement:
        constraints:
          - node.role == manager
      labels:
        - "traefik.port=8080"
        - "traefik.frontend.rule=PathPrefixStrip:/traefik"
    networks:
      - traefiknet
  whoami:
    image: emilevauge/whoami
    deploy:
      labels:
        - "traefik.port=80"
        - "traefik.frontend.rule=PathPrefixStrip:/whoami"
    networks:
      - traefiknet
networks:
  traefiknet:

traefik.toml

logLevel = "DEBUG"

defaultEntryPoints = ["http", "https"]

[api]

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

[docker]
  endpoint = "unix:///var/run/docker.sock"
  watch = true
  swarmMode = true
  network = "test_traefiknet"

Начать с:

docker stack deploy -c test.yml test

Вопрос 2

Обратите внимание, что я также проверил, как это написано на этой странице: https://docs.traefik.io/configuration/entrypoints/#static-certificates

Если указана пустая конфигурация TLS, создаются самозаверяющие сертификаты по умолчанию.

Однако это тоже не сработало. Мой вопрос, однако, в чем разница между этой конфигурацией и конфигурацией, показанной в вопросе 1 в файле toml?

1 Ответ

0 голосов
/ 31 октября 2018

Я узнал ответ. Мне нужно было удалить [entryPoints.https.tls.defaultCertificate]. К сожалению, я не нашел документацию очень ясной в этом отношении.

...