Как я могу заставить LetsEncrypt работать с подстановочным доменом в Traefik? - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь настроить LetsEncrypt с подстановочным доменом на моем экземпляре Traefik.Traefik был установлен с Helm Chart stable/traefik.

Мы используем Google Cloud для DNS, поэтому я хочу использовать gcloud в качестве моего провайдера Traefik acme.

Как уже упоминалось, этоподстановочный знак.Я пытаюсь, чтобы Traefik управлял LetsEncrypt для *.domain.com с domain.com в качестве SAN.

В настоящее время я использую заявку K8s для хранения файла acme.json, и он заполнен закрытым ключомно без сертификатов.

Значения Traefik Helm

# LetsEncrypt
acme:
  acmeLogging: true
  challengeType: 'dns-01'
  enabled: true
  domains:
    enabled: true
    main: '*.<domain>'
    sans:
        - <domain>
  defaultEntryPoints:
  - http
  - https
  dnsProvider:
    name: 'gcloud'
    gcloud:
      GCE_PROJECT: <redacted>
      GCE_SERVICE_ACCOUNT_FILE: /secrets/gcloud-credentials.json
  email: <redacted>
  entryPoint: 'https'
  entryPoints:
    http:
      address: ':80'
    https:
      address: ':443'
  persistence:
    enabled: true
    existingClaim: 'certificate-store'
  provider: 'gcloud'
  staging: true

# SSL configuration
ssl:
 enabled: true
 enforced: true

acme.json

{
  "Account": {
    "Email": "<redacted>",
    "Registration": {
      "body": {
        "status": "valid",
        "contact": [
          "mailto:<redacted>"
        ]
      },
      "uri": "https://acme-staging-v02.api.letsencrypt.org/acme/acct/9091953"
    },
    "PrivateKey": "<redacted>",
    "KeyType": "4096"
  },
  "Certificates": null,
  "HTTPChallenges": {},
  "TLSChallenges": {}
}

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

Какие дополнительные шаги мне могут понадобиться, чтобы Traefik начал генерировать сертификаты, и как я могу настроить Traefik для использования этогосертификат по умолчанию?(А не встроенный)

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Я понял это.Я установил следующее (в дополнение или замену вышеупомянутого) в своей диаграмме Хелма, переопределяя YAML.

acme:
  caServer: 'https://acme-v02.api.letsencrypt.org/directory'
  domains:
    enabled: true
    domainsList:
      - main: '*.<domain>'
      - sans:
          - <domain>

Я также избавился от persistence.existingClaim и позволил Traefik подать собственное заявление, но если у вас уже естьсуществующий, сохраняющий это определение, не должен вызывать проблем!

Все входы Traefik теперь обслуживают правильный сертификат LetsEncrypt без какой-либо дополнительной настройки.

Спасибо Василию Ангапову за ваш ответ - выбыли правильны с точки зрения раздела acme.domains.domainsList.: -)

0 голосов
/ 01 мая 2019

Вы на 100% уверены, что раздел "домены" должен выглядеть так? В stable / traefik диаграмме я вижу немного другой формат доменов:

  domains:
    enabled: false
    # List of sets of main and (optional) SANs to generate for
    # for wildcard certificates see https://docs.traefik.io/configuration/acme/#wildcard-domains
    domainsList:
    # - main: "*.example.com"
    # - sans:
    #   - "example.com"
    # - main: "*.example2.com"
    # - sans:
    #   - "test1.example2.com"
    #   - "test2.example2.com"

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

...