Несколько dns провайдеров

Доброго Всем!

Пора учиться чему то новому ) решил попробовать на дому traefik но столкнулся с тем, что вообще не понимаю как конкретным домашним приложениям выдать сертификаты, если у меня они на разных доменах, и у разных dns провайдеров.

Cloudflare, Timeweb.Cloud, Technitium. Все они вот тут DNS Providers :: Let’s Encrypt client and ACME library written in Go. - Есть.

Ранее все работало на правоверном nginx + acme.sh, В принципе все устраивало, но захотелось подвигаться. )

Собрать все домены к одному провайдеру - не вариант.

Могу ошибаться, но вроде там можно создать несколько провайдеров, а потом для конкретного домена указывать нужного провайдера.

entryPoints:
  web:
    address: ":80"

  websecure:
    address: ":443"

certificatesResolvers:
  myresolver1:
    acme:
      email: your-email@example.com
      storage: acme1.json
      httpChallenge:
        # used during the challenge
        entryPoint: web

  myresolver2:
    acme:
      email: your-email@example.com
      storage: acme2.json
      httpChallenge:
        # used during the challenge
        entryPoint: web


http:
  routers:
    my-https-router1:
      rule: "Host(`example.com`)"
      entryPoints:
         - "websecure"
      service: "my-http-service2"
      tls:
        certResolver: "myresolver1"
        domains:
          - main: "example.com"

    my-https-router2:
      rule: "Host(`example.org`)"
      entryPoints:
         - "websecure"
      service: "my-http-service2"
      tls:
        certResolver: "myresolver2"
        domains:
          - main: "example.org"

Спасибо. в целом все верно, и натолкнуло на новые мысли.

Может кому то поможет.

/etc/systemd/system/traefik.service

[Service]
EnvironmentFile=/etc/traefik/.env

/etc/traefik/.env

TIMEWEBCLOUD_AUTH_TOKEN=<TOKEN>

TECHNITIUM_SERVER_BASE_URL=<URL>
TECHNITIUM_API_TOKEN=<TOKEN>

CF_API_EMAIL=<EMAIL>
CF_DNS_API_TOKEN=<TOKEN>

traefik.yaml

certificatesResolvers:
  cloudflare:
    acme:
      email: “Ваш acme-email”
      storage: /etc/traefik/ssl/cloudflare.json
      dnsChallenge:
        provider: cloudflare
        resolvers:
          - “1.1.1.1:53”
          - “8.8.8.8:53”

  technitium:
    acme:
      email: “Ваш acme-email”
      storage: /etc/traefik/ssl/technitium.json
      dnsChallenge:
        provider: technitium
        resolvers:
          - “1.1.1.1:53”
          - “8.8.8.8:53”
  timewebcloud:
    acme:
      email: “Ваш acme-email”
      storage: /etc/traefik/ssl/timewebcloud.json
      dnsChallenge:
        provider: timewebcloud
        resolvers:
          - “1.1.1.1:53”
          - “8.8.8.8:53”


В папке etc/traefik/ssl/ установить на *.json права 0600 (-rw-------)

и в роутерах указываем уже конкретного провайдера

media:
  entryPoints:
    - "https"
  rule: "Host(`media.DOMAIN.ru`)"        
  middlewares:
    - default-headers
    - https-redirect
  tls:
    certResolver: technitium
    domains:
      - main: "DOMAIN.ru"
        sans:
          - "*.DOMAIN.ru"
2 лайка

Может я старый конечно но traefik мне показался сложнее чем NGINX ))

Мы рабы своих привычек :wink:
Спасибо, что поделились решением. Точно поможет сообществу.

1 лайк