Docker :: Traefik не обновляет сертификаты LetsEncrypt. Как исправить или обновлять вручную?

На Docker развернуто несколько сервисов: почта, файловое хранилище, чат и т.д. Все настроено и работало прекрасно пока не устарели сертификаты, выдаваемые LetsEncrypt для Traefik. Сейчас на сервисы не войти по старым сертификатам, хотя они должны были обновиться автоматом.

Иерархия каталогов Traefik

/data/
   acme.json
   config.yml
   traefik.yml
/docker-compose.yml

docker-compose.yml

version: '3.3'

services:
  traefik:
    image: traefik:2.2.1
    container_name: traefik
    restart: unless-stopped
    command:
      - --entrypoints.https.forwardedHeaders.trustedIPs=173.245.48.0/20,103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,141.101.64.0/18,108.162.192.0/18,190.93.240.0/20,188.114.96.0/20,197.234.240.0/22,198.41.128.0/17,162.158.0.0/15,104.16.0.0/12,172.64.0.0/13,131.0.72.0/22
    security_opt:
      - no-new-privileges:true
    networks:
      - proxy
    ports:
      - 80:80
      - 443:443
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./data/traefik.yml:/traefik.yml:ro
      - ./data/acme.json:/acme.json
      - ./data/config.yml:/config.yml:ro
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik.entrypoints=http"
      - "traefik.http.routers.traefik.rule=Host(`traefik.mydomen.com`)"
      - "traefik.http.middlewares.traefik-auth.basicauth.users=user:$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      - "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
      - "traefik.http.routers.traefik-secure.entrypoints=https"
      - "traefik.http.routers.traefik-secure.rule=Host(`traefik.mydomen.com`)"
      - "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
      - "traefik.http.routers.traefik-secure.tls=true"
      - "traefik.http.routers.traefik-secure.tls.certresolver=http"
      - "traefik.http.routers.traefik-secure.service=api@internal"

networks:
  proxy:
    external: true

config.yml

http:
  middlewares:
    https-redirect:
      redirectScheme:
        scheme: https

    default-headers:
      headers:
        frameDeny: true
        sslRedirect: true
        browserXssFilter: true
        contentTypeNosniff: true
        forceSTSHeader: true
        stsIncludeSubdomains: true
        stsPreload: true

    default-whitelist:
      ipWhiteList:
        sourceRange:
        - "10.0.0.0/24"
        - "192.168.0.0/16"
        - "172.0.0.0/8"

    secured:
      chain:
        middlewares:
        - default-whitelist
        - default-headers

traefik.yml

api:
  dashboard: true
  debug: true

entryPoints:
  http:
    address: ":80"
  https:
    address: ":443"

providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"
    exposedByDefault: false
  file:
    filename: /config.yml

certificatesResolvers:
  http:
    acme:
      email: [email protected]
      storage: acme.json
      httpChallenge:
        entryPoint: http

acme.json (файл намеренно видоизменен по понятным причинам)

{
  "http": {
    "Account": {
      "Email": "[email protected]",
      "Registration": {
        "body": {
          "status": "valid",
          "contact": [
            "mailto:[email protected]"
          ]
        },
        "uri": "https://acme-v02.api.letsencrypt.org/acme/acct/2323232323"
      },
      "PrivateKey": "_private-key_xxxxxxxxxxxxxxx",
      "KeyType": "4096"
    },
    "Certificates": [
      {
        "domain": {
          "main": "traefik.mydomen.com"
        },
        "certificate": "_sertificate_xxxxxxxxxxxxxxxxx",
        "key": "_key_xxxxxxxxxxxxxxxxxxxxxxx",
        "Store": "default"
      },
      {
        "domain": {
          "main": "pochta.mydomen.com"
        },
        "certificate": "_sertificate_yyyyyyyyyyyyyyyyyyyyyyyy",
        "key": "_key_yyyyyyyyyyyyyyyyyyyyyyyy",
        "Store": "default"
      },
      {
        "domain": {
          "main": "files.mydomen.com"
        },
        "certificate": "_sertificate_zzzzzzzzzzzzzzzzzzzzzzzzz",
        "key": "_key_zzzzzzzzzzzzzzzzzzzzzzzzz",
        "Store": "default"
      },
      {
        "domain": {
          "main": "chat.mydomen.com"
        },
        "certificate": "_sertificate_vvvvvvvvvvvvvvvvvvvvvvvvv",
        "key": "_key_vvvvvvvvvvvvvvvvvvvvvvvvv",
        "Store": "default"
      }
    ]
  }
}

Возможно ли починить механизм получения сертификатов в Traefik или как то обновлять сертификаты в acme.json вручную???

Нужна ваша помощь.


Ответы (0 шт):