Traefik Letsencrypt Wildcard-Zertifikate

  • Hallo zusammen,


    ich habe hier bei netcup drei Domains. Für eine davon wollte ich unter Docker Swarm in Traefik mit Letsencrypt mit der DNS-01 Challenge ein Wildcard-Zertifikat ausstellen lassen.


    Meine Einstellungen in der .toml:

    Und unterhalb der docker-compose.yml unterhalb des Traefik-Services:

    Code
    1. environment:
    2. NETCUP_CUSTOMER_NUMBER: 'KUNDENNUMER'
    3. NETCUP_API_KEY: 'API KEY'
    4. NETCUP_API_PASSWORD: 'DAS GENERIERTE API PASSWORD'

    Ich bekomme immer folgende Fehlermeldung:

    Code
    1. time="2019-05-16T18:05:37Z" level=error msg="Error getting ACME certificate for domain [\"*.mein-donain.de\"]: cannot obtain certificates: acme: Error -> One or more domains had a problem:\n[*.meine-domain.de] [*.meine-domain.de] acme: error presenting token: netcup: failed to find DNSZone, unexpected response code 'REFUSED' for _acme-challenge.meine-domain.de.\n"


    Jetzt ist mir nicht klar, ob Traefik einfach nur falsch konfiguriert ist oder es eine Problem mit dem Netcup DNS oder dort vorhandene Einstellungen ist.


    Weiß hier jemand woran es liegt, bzw. hat es schon mal jemand erfolgreich zum Laufen gebraucht?

  • Jetzt wo das Ausstellen der Zertifikate klappt ist heir auch gleich die zweite schlechte Idee die ich hatte in der .toml Datei:

    Code
    1. caServer = "https://acme-staging-v02.api.letsencrypt.org/directory"

    Damit bekommt man nur Zertifikate, die von der Letsencrypt Staging-Umgebung ausgestellt werden.


    Richtig ist:

    caServer = "https://acme-v02.api.letsencrypt.org/directory"

  • Achja, noch ein wichtiger Aspekt: was noch gefehlt hat war Geduld!


    Die Einstellung `delayBeforeCheck = 900` in der .toml-Datei sorgt dafür, dass erst nach 15 Minuten der TXT-Eintrag für "_acme-challenge" überprüft wird.

    Es dauert tatsächlich so seine Zeit bis der Eintrag zu sehen ist. Nach einiger Zeit verschwindet er auch wieder.

  • Hallo Metin,

    vielen Dank für das Teilen der Konfiguration, es hat bei mir auch super funktioniert :)


    Als Ergänzung noch:

    Man kann anstelle der Umgebungsvariablen auch Dateien nutzen, in die man die Credentials hinterlegt. Das hat bei mir so funktioniert:


    docker-compose.yml



    Und die Credentials sollte man mit echo -n schreiben, damit newlines vermieden werden (damit kommt Traefik nicht klar)

    Code
    1. mkdir -p /data/traefik/netcup
    2. # echo credentials and use -n to avoid newline
    3. echo -n "12345" > /data/traefik/netcup/.NETCUP_CUSTOMER_NUMBER
    4. echo -n "XYZ" > /data/traefik/netcup/.NETCUP_API_KEY
    5. echo -n "ABC" > /data/traefik/netcup/.NETCUP_API_PASSWORD
    6. chmod -R 400 /data/traefik/netcup/



    traefik.toml