Traefik mit SSL Zertifikaten von LE - FM: cannot get ACME client ipv64:

Hi zusammen,

ich habe nach folgender Anleitung (Traefik 3 and FREE Wildcard Certificates with Docker | Techno Tim) versucht per Docker „Traefik“ aufzusetzen, anstatt CF dann ipv64 :slight_smile: . Grundsätzlich läuft der Traefik-Container und ist auch per Browseraufruf erreichbar. Bekomme aber keine LE Zertifikate.

docker logs traefik
ERR Unable to obtain ACME certificate for domains error=„cannot get ACME client ipv64: some credentials information are missing: IPV64_API_KEY“

Habe meinen IPV64_API_KEY im compose als Datei referenziert/hinterlegt,

    environment:
      IPV64_API_KEY_FILE: /run/secrets/ipv64_api_key

Datei enthält KEY, kann diesen im laufenden Container auch lesen, hilft aber nischt.

Ideen, Ansätze oder gar ne Lösung - ich wäre häppy.

Gruß us Kölle,…
Hartmut

So, noch mal alles neu gemacht, aber neue
FM: acme: error presenting token: ipv64: error (400 Bad Request)

komplett
ERR Unable to obtain ACME certificate for domains error="unable to generate a certificate for the domains [local.mydomain.tld *.local.mydomain.tld]: error: one or more domains had a problem:\n[*.local.mydomain.tld] [*.local.mydomain.tld] acme: error presenting token: ipv64: error (400 Bad Request): invalid record informations\n[local.mydomain.tld] [local.mydomain.tld] acme: error presenting token: ipv64: error (400 Bad Request): invalid record informations\n"

auf der ipv64.net sehe ich 4 API Abfragen nach Start des Traefik DockerContainers. Gibt es hier einen LOG der mehr Infos liefert?

möchte nicht drängeln nur läuft mir die Zeit davon.

Meine Entscheidung für IPv64 war bewusst nach dem Motto „Support your local dealer“ und ich habe deswegen für den Anfang auch Unmengen an Kohle für einen Supporteraccount rausgehauen.

Möchte ungern den global Playern wie CF hier das Geld hinterherschleppen.

Brauche auf jeden Fall hier Support. Danke

Schon mal mit einem Delay für DNS-Propagation versucht?
Ich vermute mal, dass das Anlegen der DNS-Records noch nicht ganz durch ist, während LE schon zu verifizieren versucht.

--certificatesresolvers.myresolver.acme.dnschallenge.delaybeforecheck=30

Angabe ist in Sekunden.

ja, ist drin.

ich poste mal die Konfig…

traefik.yml

api:
  dashboard: true
  debug: true
entryPoints:
  http:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: https
          scheme: https
  https:
    address: ":443"
serversTransport:
  insecureSkipVerify: true
providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"
    exposedByDefault: false
  # file:
  #   filename: /config.yml
certificatesResolvers:
  ipv64:
    acme:
      email: meine@meinedomain.tld
      storage: acme.json
      # caServer: https://acme-v02.api.letsencrypt.org/directory # prod (default)
      caServer: https://acme-staging-v02.api.letsencrypt.org/directory # staging
      dnsChallenge:
        provider: ipv64
        delayBeforeCheck: 30s 
        resolvers:
          - "159.69.110.93:53"
          - "167.235.231.182:53"

und den docker-compose.yml

version: "3.8"

services:
  traefik:
    image: traefik:v3.1
    container_name: traefik
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    networks:
      - proxy
    ports:
      - 80:80
      - 443:443
      # - 443:443/tcp # Uncomment if you want HTTP3
      # - 443:443/udp # Uncomment if you want HTTP3
    environment:
      IPV64_API_KEY_FILE: /run/secrets/ipv64_api_key # note using _FILE for docker secrets
      # CF_DNS_API_TOKEN: ${IPV64_API_KEY} # if using .env
      TRAEFIK_DASHBOARD_CREDENTIALS: ${TRAEFIK_DASHBOARD_CREDENTIALS}
    secrets:
      - ipv64_api_key
    env_file: .env # use .env
    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-dashboard.local.mydomain.tld`)"
      - "traefik.http.middlewares.traefik-auth.basicauth.users=${TRAEFIK_DASHBOARD_CREDENTIALS}"
      - "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto=https"
      - "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
      - "traefik.http.routers.traefik-secure.entrypoints=https"
      - "traefik.http.routers.traefik-secure.rule=Host(`traefik-dashboard.local.mydomain.tld`)"
      - "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
      - "traefik.http.routers.traefik-secure.tls=true"
      - "traefik.http.routers.traefik-secure.tls.certresolver=ipv64"
      - "traefik.http.routers.traefik-secure.tls.domains[0].main=local.mydomain.tld"
      - "traefik.http.routers.traefik-secure.tls.domains[0].sans=*.local.mydomain.tld"
      - "traefik.http.routers.traefik-secure.service=api@internal"

secrets:
  ipv64_api_key:
    file: ./ipv64_api_key.txt

networks:
  proxy:
    external: true