вся цепочка сертификатов подстановки - PullRequest
0 голосов
/ 19 декабря 2018

У нас есть Docker Swarm Cluster с Consul + Traefik в качестве прокси для наших микросервисов.Traefik v1.6.1 был установлен, и теперь мы должны настроить де-подстановочный сертификат. У меня есть собственный подстановочный сертификат.Этот сертификат является групповым сертификатом (* .mydomain.com) для поддержки наших микро-сервисов, доступных в поддоменах как «microservice2.mydomain.com».Конечно, моя конфигурация работает с сертификатами ACme очень хорошо.Так как у меня теперь есть свои собственные сертификаты, в настоящее время я не нахожу документацию о том, как хранить сертификат в секретах или консуле и как заставить его работать с аргументами командной строки и ярлыками докера, как показано ниже?Как добавить сертификаты в приведенную ниже конфигурацию, чтобы она работала

version: "3.2"
services:
  traefik_init:
    image: traefik:1.6
    command:
      - "storeconfig"
      - "--api"
      - "--entrypoints=Name:http Address::80 Redirect.EntryPoint:https"
      - "--entrypoints=Name:https Address::443 TLS"
      - "--defaultentrypoints=http,https"
      - "--acme"
      - "--acme.storage=traefik/acme/account"
      - "--acme.entryPoint=https"
      - "--acme.httpChallenge.entryPoint=http"
      - "--acme.onHostRule=true"
      - "--acme.onDemand=false"
      - "--acme.email=foobar@example.com"
      - "--docker"
      - "--docker.swarmMode"
      - "--docker.domain=mydomain.com"
      - "--docker.watch"
      - "--consul"
      - "--consul.endpoint=consul:8500"
      - "--consul.prefix=traefik"
      - "--debug"
    networks:
      - internal
    deploy:
      restart_policy:
        condition: on-failure
    depends_on:
      - consul
  traefik:
    image: traefik:1.6
    depends_on:
      - traefik_init
      - consul
    command:
      - "--consul"
      - "--consul.endpoint=consul:8500"
      - "--consul.prefix=traefik"
      - "--logLevel=DEBUG"
      - "--api"
      - "--entrypoints=Name:http Address::80 Redirect.EntryPoint:https"
      - "--entrypoints=Name:https Address::443 TLS"
      - "--defaultentrypoints=http,https"
      - "--acme"
      - "--acme.storage=traefik/acme/account"
      - "--acme.entryPoint=https"
      - "--acme.httpChallenge.entryPoint=http"
      - "--acme.onHostRule=true"
      - "--acme.onDemand=false"
      - "--acme.email=foobar@example.com"
      - "--docker"
      - "--docker.swarmMode"
      - "--docker.domain=mydomain.com"
      - "--docker.watch"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - internal
      - traefik_proxy
    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
      labels:
            - "traefik.enable=true"
            - "traefik.backend=traefik"
            - "traefik.frontend.rule=Host:traefik.mydomain.com"
            - "traefik.port=8080"
            - "traefik.docker.network=traefik_proxy"

  consul:
    image: consul:latest
    command: "agent -server -bootstrap-expect=1 -ui -client 0.0.0.0 -bind '{{ GetInterfaceIP \"eth0\" }}'"
    volumes:
      - consul-data:/consul/data
    environment:
      - CONSUL_LOCAL_CONFIG={"datacenter":"us_east2","server":true}
      - CONSUL_BIND_INTERFACE=eth0
      - CONSUL_CLIENT_INTERFACE=eth0
    ports:
      - 8500:8500
    deploy:
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      restart_policy:
        condition: on-failure
    networks:
      - internal

networks:
  traefik_proxy:
    external: true
  internal:
    driver: overlay

volumes:
  consul-data:
      driver: local
...