Как сказать Traefik 2.1 использовать определяемый пользователем сертификат подстановочного знака для маршрутизатора? - PullRequest
1 голос
/ 04 марта 2020

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

traefik.yml

global:
  checkNewVersion: false
  sendAnonymousUsage: false

log:
  level: DEBUG

entryPoints:
  web:
    address: ":80"
  web-secure:
    address: ":443"

providers:
  file:
    directory: /etc/traefik/conf
    watch: true

dynamici c conf:

http:
  routers:
    test:
      rule: "Host(`subdomain.wildcard.domain.tld`)"
      entryPoints: ["web"]
      service: service-test
      middlewares: ["https_redirect"]
    test-secure:
      rule: "Host(`subdomain.wildcard.domain.tld`)"
      entryPoints: ["web-secure"]
      service: service-test
      tls: {}

  services:
    service-test:
      loadBalancer:
        servers:
          - url: "http://helloworld"

  middlewares:
    https_redirect:
      redirectScheme:
        scheme: https
        permanent: true

Traefik работает внутри контейнера Docker, основываясь на журнале, который он может просматривать и использовать смонтированные файлы сертификатов:

time="2020-03-04T10:44:13Z" level=debug msg="No store is defined to add the certificate <...>, it will be added to the default store."
time="2020-03-04T10:44:13Z" level=debug msg="Adding certificate for domain(s) wildcard.domain.tld,*.wildcard.domain.tld"
time="2020-03-04T10:44:13Z" level=debug msg="No default certificate, generating one"

Однако при выполнении запрос curl, используется сертификат по умолчанию:

curl -k -v --header "Host: subdomain.wildcard.domain.tld" https://192.168.173.143/

* Server certificate:
*  subject: CN=TRAEFIK DEFAULT CERT
*  start date: Mar  4 10:44:13 2020 GMT
*  expire date: Mar  4 10:44:13 2021 GMT
*  issuer: CN=TRAEFIK DEFAULT CERT
*  SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.

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

tls:
  certificates:
    - certFile: /ssl/wildcard.crt
      keyFile: /ssl/wildcard.key
  stores:
    default:
      defaultCertificate:
        certFile: /ssl/wildcard.crt
        keyFile: /ssl/wildcard.key
...