Трафик и самозаверяющий SSL - PullRequest
0 голосов
/ 18 июня 2019

Нуб Трафику и Докеру.Я подготовил самозаверяющий сертификат, используя:

openssl req -x509 -newkey rsa:4096 -keyout www.example.co.uk.key -out www.example.co.uk.crt-days 365

В моем файле traefik.toml есть:

[entryPoints]
  [entryPoints.http]
  address = ":80"
  [entryPoints.https]
  address = ":443"
  [entryPoints.https.tls]
    [[entryPoints.https.tls.certificates]]
    certFile = "certs/www.example.co.uk.crt"
    keyFile = "certs/www.example.co.uk.key"

Однако это приводит к:

traefik          | time="2019-06-17T22:11:17Z" level=debug msg="Serving default cert for request: \"www.example.co.uk\""
traefik          | time="2019-06-17T22:11:17Z" level=debug msg="http: TLS handshake error from 172.20.0.1:57770: tls: no certificates configured"

Если я опущу определения сертификатов, чтобы traefik.toml читался как:

[entryPoints]
  [entryPoints.http]
  address = ":80"
  [entryPoints.https]
  address = ":443"
  [entryPoints.https.tls]
  #  [[entryPoints.https.tls.certificates]]
  #  certFile = "certs/www.example.co.uk.crt"
  #  keyFile = "certs/www.example.co.uk.key"

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

В моем docker-compose.yml я полагаю, что смонтировал правильный том:

volumes:
  - /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events
  - ./traefik.toml:/traefik.toml
  - /var/www/docker/certs:/certs

И сертификаты находятся на certs/ относительно моего docker-compose.ym l иtraefik.toml файлов.Разрешения кажутся хорошими, и оба принадлежат root - у crt с 644 и key с 600.

Как я могу использовать самозаверяющий сертификат вместо значений по умолчанию Traefiks?

1 Ответ

1 голос
/ 18 июня 2019

Вероятно, несоответствие пути, особенно с некоторыми относительными путями и другими абсолютными.Попробуйте следующее в своем файле составления (относительный путь к локальным сертификатам):

volumes:
  - /var/run/docker.sock:/var/run/docker.sock
  - ./traefik.toml:/traefik.toml
  - ./certs:/certs

и затем переключитесь на абсолютный путь в томле (начальная косая черта в сертификатах):

[entryPoints]
  [entryPoints.http]
  address = ":80"
  [entryPoints.https]
  address = ":443"
  [entryPoints.https.tls]
    [[entryPoints.https.tls.certificates]]
    certFile = "/certs/www.example.co.uk.crt"
    keyFile = "/certs/www.example.co.uk.key"
...