Hello

J'ai testé traefik et cela semble plutot bien fonctionner.
Je me suis basé sur le docker-compose.yml de Merrick.

Mon point est le suivant:
tout se lance bien
tout semble bien fonctionner sauf pour le https
tout mes applications ont un sous domaine (un seul certificat pour tout le monde me convient bien)
Autre détail, le fichier traefik.toml qui se cree sur mon disque est un repertoire et non un fichier, c’est bizarre pourtant le mapping des volumes me semble bon.

Lorsque je fais un test en https avec le portail de traefik voila ce que j'obtiens:
Une erreur est survenue pendant une connexion à traefik.mondomaine.fr. Le pair signale qu’il a eu une erreur interne. Code d’erreur : SSL_ERROR_INTERNAL_ERROR_ALERT

Si dessous mon yml:

version: '3'services:
  traefik:
    image: traefik:latest
    command: --web --docker --docker.domain=docker.localhost --logLevel=DEBUG --entryPoints='Name:https Address::443 TLS' --entryPoints='Name:http Address::80' --acme.entrypoint=https --acme=true --acme.domains=mondomaine.fr,traefik.mondomaine.fr --acme.email=monadresseemail@gmail.com --acme.ondemand=true acme.onhostrule=true --acme.storage=/certs/acme.json
    container_name: traefik
    ports:
       - "80:80"
       - "443:443"
    volumes:
       - /var/run/docker.sock:/var/run/docker.sock
       - /home/user/traefik.toml:/etc/traefik/traefik.toml
       - /home/user/dockers/certs:/certs
    labels:
       - traefik.backend=traefik
       - traefik.frontend.rule=Host:traefik.mondomaine.fr
       - traefik.backend.port=8080
       - traefik.frontend.entryPoints=http,httpsrtorrent:
    image: xataz/rtorrent-rutorrent:latest-filebot
    container_name: rutorrent
    environment:
      - DHT_RTORRENT=on
      - UID=1000
      - GID=1000
    ports:
      - 45000:45000
      - 5000:5000
    labels:
      - traefik.backend=rutorrent
      - traefik.frontend.rule=Host:rtorrent.mondomaine.fr
      - traefik.backend.port=8080
      - traefik.frontend.entryPoints=https,http
    volumes:
      - /home/user:/data
      - /home/user/dockers/rutorrent2:/config

Si quelqu'un a une idee

Merci

Bonjour,

si tu n'utilises pas de traefik.toml (ce qui est mon cas), tu peux mettre

 - /dev/null:/traefik.toml

au lieu de

 - /home/user/traefik.toml:/etc/traefik/traefik.toml

Dans tous les cas, le chemin du traefik.toml sur le docker est / et non /etc/traefik

Pour ce qui est du ssl, il faudrait que tu nous donnes les logs de traefik

docker logs traefik
  • zer a répondu à ça.

    Merci pour ton retour.
    En soit je n'ai pas vraiment besoin d'utiliser le fichier toml, ta méthode me convient bien.

    J'ai fait un extract dans les logs à partir du moment où j'ai commencé à voir les messages d'erreur:

    time="2018-01-14T15:34:35Z" level=info msg="Server configuration reloaded on :80"
    time="2018-01-14T15:34:36Z" level=error msg="map[mondomaine.fr:[mondomaine.fr] acme: Could not determine solvers traefik.mondomaine.fr:[traefik.mondomaine.fr] acme: Could not determine solvers]"
    time="2018-01-14T15:34:36Z" level=error msg="Error getting ACME certificate for domain [mondomaine.fr traefik.mondomaine.fr]: Cannot obtain certificates map[mondomaine.fr:[mondomaine.fr] acme: Could not determine solvers traefik.mondomaine.fr:[traefik.mondomaine.fr] acme: Could not determine solvers]+v"
    time="2018-01-14T15:34:36Z" level=info msg="Retrieved ACME certificates"
    time="2018-01-14T15:34:36Z" level=debug msg="Testing certificate renew..."
    time="2018-01-14T15:51:58Z" level=debug msg="Look for provided certificate to validate [traefik.mondomaine.fr]..."
    time="2018-01-14T15:51:58Z" level=debug msg="No provided certificate found for domains [traefik.mondomaine.fr], get ACME certificate."
    time="2018-01-14T15:51:58Z" level=debug msg="Challenge GetCertificate traefik.mondomaine.fr"
    time="2018-01-14T15:51:58Z" level=debug msg="Loading ACME certificates [traefik.mondomaine.fr]..."
    time="2018-01-14T15:51:59Z" level=error msg="map[traefik.mondomaine.fr:[traefik.mondomaine.fr] acme: Could not determine solvers]"
    time="2018-01-14T15:51:59Z" level=debug msg="http: TLS handshake error from 82.231.227.206:63953: Cannot obtain certificates map[traefik.mondomaine.fr:[traefik.mondomaine.fr] acme: Could not determine solvers]+v"
    time="2018-01-14T15:51:59Z" level=debug msg="Look for provided certificate to validate [traefik.mondomaine.fr]..."
    time="2018-01-14T15:51:59Z" level=debug msg="No provided certificate found for domains [traefik.mondomaine.fr], get ACME certificate."
    time="2018-01-14T15:51:59Z" level=debug msg="Challenge GetCertificate traefik.mondomaine.fr"
    time="2018-01-14T15:51:59Z" level=debug msg="Loading ACME certificates [traefik.mondomaine.fr]..."
    time="2018-01-14T15:51:59Z" level=error msg="map[traefik.mondomaine.fr:[traefik.mondomaine.fr] acme: Could not determine solvers]"
    time="2018-01-14T15:51:59Z" level=debug msg="http: TLS handshake error from 82.231.227.206:63954: Cannot obtain certificates map[traefik.mondomaine.fr:[traefik.mondomaine.fr] acme: Could not determine solvers]+v"
    time="2018-01-14T15:52:00Z" level=debug msg="Look for provided certificate to validate [traefik.mondomaine.fr]..."
    time="2018-01-14T15:52:00Z" level=debug msg="No provided certificate found for domains [traefik.mondomaine.fr], get ACME certificate."
    time="2018-01-14T15:52:00Z" level=debug msg="Challenge GetCertificate traefik.mondomaine.fr"
    time="2018-01-14T15:52:00Z" level=debug msg="Loading ACME certificates [traefik.mondomaine.fr]..."
    time="2018-01-14T15:52:00Z" level=error msg="map[traefik.mondomaine.fr:[traefik.mondomaine.fr] acme: Could not determine solvers]"
    time="2018-01-14T15:52:00Z" level=debug msg="http: TLS handshake error from 82.231.227.206:63955: Cannot obtain certificates map[traefik.mondomaine.fr:[traefik.mondomaine.fr] acme: Could not determine solvers]+v"
    time="2018-01-14T20:04:17Z" level=debug msg="http: TLS handshake error from 141.212.122.144:61315: tls: no cipher suite supported by both client and server"
    time="2018-01-14T22:01:16Z" level=debug msg="Look for provided certificate to validate [50.115.171.122]..."
    time="2018-01-14T22:01:16Z" level=debug msg="No provided certificate found for domains [50.115.171.122], get ACME certificate."
    time="2018-01-14T22:01:16Z" level=debug msg="Challenge GetCertificate 50.115.171.122"

    MErci d'avance.

    Question bête : traefik.mondomaine.fr est bien enregistré et pointe bien vers ta machine ? Pour que Letsencrypt marche, il te faut un nom de domaine officiel (je suppose que ce n'est pas mondomaine.fr ?)

    oui oui
    J'ai juste modifié mes logs pour ne pas faire apparaitre le vrai domaine ainsi que l'IP du serveur.
    Bref je te rassure, il s'agit bien du bon domaine, dont je suis bien le propriétaire et j'ai bien fait les entrées DNS pour que tout pointe bien vers mon serveur.

    Ce qui m'inquiète c'est ça :

    Could not determine solvers traefik.mondomaine.fr:[traefik.mondomaine.fr] acme: Could not determine solvers

    Comme si ton docker ne pouvait pas résoudre ton nom de domaine. C'est "normal" dans ce cas qu'il n'arrive pas à mettre de certificat.
    Essaie à tout hasard de modifier pour ajouter un serveur dns

    services:
      traefik:
        image: traefik:latest
        command: --web --docker --docker.domain=docker.localhost --logLevel=DEBUG --entryPoints='Name:https Address::443 TLS' --entryPoints='Name:http Address::80' --acme.entrypoint=https --acme=true --acme.domains=mondomaine.fr,traefik.mondomaine.fr --acme.email=monadresseemail@gmail.com --acme.ondemand=true acme.onhostrule=true --acme.storage=/certs/acme.json
        container_name: traefik
        ports:
           - "80:80"
           - "443:443"
        volumes:
           - /var/run/docker.sock:/var/run/docker.sock
           - /home/user/traefik.toml:/etc/traefik/traefik.toml
           - /home/user/dockers/certs:/certs
        labels:
           - traefik.backend=traefik
           - traefik.frontend.rule=Host:traefik.mondomaine.fr
           - traefik.backend.port=8080
           - traefik.frontend.entryPoints=http,https
    
   dns: 8.8.8.8

    Il y a un soucis avec LE depuis une petite semaine (j'ai cette erreur depuis Mercredi).

    D'après ce que j'ai compris, ça ne vient pas de Traefik, mais de LE directement car ils ont changé de méthode de délivrance des certificats (HTTP-01 Challenge).

    Il y a une PR en attente pour que traefik prenne en compte la modification : https://github.com/containous/traefik/issues/2691

    A ce stade, soit tu attends que la PR soit fusionnée, soit tu récupère les certificats à la main :

        - Utilise : janeczku/rancher-letsencrypt:v0.5.0 pour récupérer les certs.
        - Copie les fichiers .pem dans un dossier persistant pour ton container traefik.
        - Renomme les fichiers .pem en .crt et .key
        - Insère les fichiers dans traefik.toml sous [entryPoints.https.tls]

    Merrick Si tu n'utilises pas traefik.toml, il génère quand même les certificats LE ?
    J'avais compris que ce n'était pas activé par défaut.

      zer Oui, ça marche très bien (en tout cas ça marchait, je n'ai pas testé depuis la mise à jour LE).
      Je l'utilise sur ce projet : https://github.com/Merrick28/seedbox-docker

      Ce qui marche moyennement sans traefik.toml, c'est la redirection du port 80 vers le 443. J'ai réussi à le faire marcher une ou deux fois, mais ça reste très aléatoire.

      Merci pour vos retours.
      Effectivement j’ai lu à plusieurs endroits les soucis depuis 1 semaine avec LE.
      Je vais les générer à la main.
      Je vais tester demain et vous tiens au courant

      Merci

      Hello

      Traefik vient de sortir une version corrigée: 1.5.0-RC5
      Je la teste dans l'après midi et vous fais un retour

      a+

      Vu, testé et approuvé !

      2 étapes :
      Rajouter les lignes suivantes dans traefik.toml :

      [acme.httpChallenge]
      entryPoint = "http"

      utiliser l'image suivante :
      traefik:v1.5.0-rc5

      At last !

      hello

      Je confirme.
      Cela fonctionne.
      Merci à tous pour votre aide

      a+

      christophebe a renommé le titre en RESOLU - Traefik - https et fichier toml.

      Merci cela marche avec la release: traefik:v1.5.0-rc5 et j'ai ajouté
      --acme.httpchallenge.entrypoint=http avec le docker-compose de merrick

        2 ans plus tard

        Bonjour,

        Je suis sur traefik V2, tout fonctionne, https..
        Seulement je n'arrive pas à faire une redirection de http vers https, quelqu'un à t'il déjà fait cela ?

        Merci

        Tu aurais pu faire un nouveau topic, celui-ci est vieux. 😅
        Tant que j'y suis je te réponds, voilà comment je fais pour Traefik v2 :

        # traefik.yml
        providers:
          ...
          file:
            filename: /config.yml
        # config.yml
        http:
          middlewares:
            https-redirect:
              redirectScheme:
                scheme: https
        # docker-compose.yml
        ...
            labels:
              - traefik.enable=true
              - traefik.http.routers.traefik.entrypoints=http
              - traefik.http.routers.traefik.rule=Host(`traefik.domain.tld`)
              - traefik.http.routers.traefik.middlewares=https-redirect@file
              - traefik.http.routers.traefik-secure.entrypoints=https
              - traefik.http.routers.traefik-secure.rule=Host(`traefik.domain.tld`)
              ...
        Répondre…