1 Question: Traefik / SSL / LetsEncrypt Faulty

question créée à Sat, Mar 16, 2019 12:00 AM

J'essaie de configurer letEncrypt avec traeffik et quoi que je fasse, cela ne semble pas fonctionner. Au moment où j'obtiens l'erreur suivante:

 entrer la description de l'image ici

D'autres publications SO ont indiqué que cela pourrait être dû à la non-utilisation du défi http pour traeffik ( Traefik émettra un certificat au lieu de Let's encrypt ), mais je l'utilise donc je n'ai aucune idée honnêtement (cela ne résout pas le problème - ne ferme pas). Mes fichiers de configuration semblent être petits, mais je n’obtiens aucun retour d’erreur, alors ma capacité à itérer lors de pauses est réduite. Si quelqu'un peut vous aider à résoudre ce problème, je vous en serais reconnaissant. J'y travaille depuis longtemps et je ne sais pas quoi faire.

Je lance les trois fichiers suivants ci-dessous à l'aide de ce petit script bash:

root@ubuntu-1gb-nyc3-01:/lowteck# cat ./runSwarm.sh 
#!/bin/bash

./buildandpush.sh
cd ./back
./buildandpush.sh
cd ..

docker volume prune -f
docker kill $(docker ps -q)
docker rm $(docker ps -a -q)
 docker swarm init \
   --advertise-addr 104.236.214.151
docker network create -d overlay --attachable proxy
docker stack deploy --compose-file=stage.yaml prod2 
docker stack deploy --compose-file=traefik.yaml prodTraefik

Voici mon traefik.toml:

root@ubuntu-1gb-nyc3-01:/lowteck# cat traefik.toml 
logLevel = "DEBUG"
defaultEntryPoints = ["http", "https"]

[web]

[entryPoints]
  [entryPoints.http]
  address = ":80"
  [entryPoints.http.forwardedHeaders]
    trustedIPs = ["104.236.214.151"]
  [entryPoints.https]
  address = ":443"
    [entryPoints.https.tls]

[acme]
  caServer = "https://acme-v02.api.letsencrypt.org/directory"
  email = "pweyand@gmail.com"
  storage = "acme.json"
  entryPoint = "https"
  onHostRule = true 
  [acme.httpChallenge]
    entryPoint = "http"

[[acme.domains]]
  main = "lowteck.com"
  sans = ["www.lowteck.com"]

[docker]
  domain = "traefik"
  watch = true
  swarmmode = true
  network="web"

Voici mon traefik.yaml:

root@ubuntu-1gb-nyc3-01:/lowteck# cat traefik.yaml 
version: '3.3'

networks:
  proxy:
    external: true

configs:
  traefik.toml:
    file: ./traefik.toml

services:

  traefik:
    image: traefik
    ports:
      - "80:80"
      - "8080:8080"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    configs:
      - source: traefik.toml
        target: /etc/traefik/traefik.toml
    labels:
      - "traefik.enable=false"
    networks:
      - proxy
    deploy:
      replicas: 1
      placement:
        constraints: [node.role == manager] 

Voici mon stage.yaml:

root@ubuntu-1gb-nyc3-01:/lowteck# cat stage.yaml 
version: "3.3"

networks:
  default:
    external: false
  proxy:
    external: true

services:
  back:
    image: patientplatypus/lowtechback:latest
    ports: 
      - '5000:5000'
    networks:
      - proxy
      - default
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
        max_attempts: 5
        window: 120s
      labels:
        - "traefik.docker.backend=back"
        - "traefik.port=5000"
        - "traefik.frontend.rule=Host:back.lowteck.com"
        - "traefik.docker.network=proxy"
  front:
    image: patientplatypus/lowtechfront:latest
    ports: 
      - '3000:3000'
    networks:
      - proxy
      - default
    depends_on:
      - back
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
        max_attempts: 5
        window: 120s
      labels:
        - "traefik.docker.backend=front"
        - "traefik.port=3000"
        - "traefik.frontend.rule=Host:104.236.214.151, lowteck.com, www.lowteck.com, zennify.me"
        - "traefik.docker.network=proxy"

Encore une fois, je suis dans ce domaine depuis un moment et je n’ai essentiellement aucun code d’erreur sur lequel continuer. Si quelqu'un a des conseils, faites-le moi savoir.

EDIT:

J'ai trouvé une erreur après avoir déconnecté le pod traefik, à savoir qu'il me fallait:

[[acme.domains]]
  main = "lowteck.com"
  sans = ["www.lowteck.com", "back.lowteck.com"]

Cependant, le problème https n’a pas été résolu, bien que les journaux soient maintenant clairs pour le conteneur traefik. Vous pouvez voir la sortie complète du journal ici: 0

  1. Pouvez-vous poster le journal du conteneur traefik quand il commence? Il devrait montrer son activité concernant ACME /Let's Encrypt
    2019-03-16 21: 19: 32Z
  2. @ Thomasleveil - merci pour la suggestion - qui a permis de déboguer au moins une erreur potentielle, bien que j'obtienne la même erreur lorsque j'essaie d'atteindre https. Vous pouvez voir les journaux complets ci-dessus dans mon EDIT.
    2019-03-16 21: 45: 56Z
  3. essayez 0600350991111101035062. Si cela fonctionne, je donnerai des détails sur la cause du problème
    2019-03-16 21: 55: 36Z
  4. Maintenant, le certificat génère à partir des journaux. Je suppose que les certificats sont en quelque sorte hachés comme uniques dans l'ordre des domaines utilisés, indépendamment de la les domaines eux-mêmes (idiot) - mais je comprends toujours que https est auto-signé par traefik et non letsEncrypt lors de la navigation dans le navigateur. Se connecte parce que pourquoi pas ( gist.github.com/patientplatypus/… )
    2019-03-16 22: 01: 10Z
  5. ajoutez "traefik.frontend.rule=Host:lowteck.com,www.lowteck.com,zennify.me,104.236.214.151" sous la section 0600350991111101035062 de votre fichier toml, cela pourrait donner de nouvelles indications
    2019-03-16 22: 06: 24Z
1 Réponses                              1                         

Alors j’ai enfin résolu le problème et je tiens à signaler quelques points qui intéressent tout ceux qui se heurtent à ce problème.

1) Vous devez enregistrer votre traefik pod à l’aide de acmeLogging = true pour que toutes les erreurs soient corrigées. Pour une raison quelconque, cela ne m’était pas venu (stupide).

2) La portion maximale n'est pas définie par pod, mais par ce qui se trouve dans vos enregistrements A pour le domaine. Si ce n’est pas dans les enregistrements A, ne le mettez pas à cet endroit, cela apparaîtra dans les journaux comme une erreur.

3) Assurez-vous que vous utilisez la dernière version de traefik - Dans mon cas, je devais modifier la version de traefik en 1.7.9 en modifiant 0600350991111101035062 pour avoir la ligne 06003509911110.0101035062

4) Si vous utilisez le test http, votre fichier acme.json sera et devrait être vide. Ne vous inquiétez donc pas.

5) Enfin, si vous obtenez le message d'erreur suivant lequel vous avez dépassé le nombre maximal de demandes de certificat pour votre domaine provenant de letsEncrypt, vous risquez de ne pas forcer votre domaine à ne pas utiliser https. pouvoir utiliser un précédent certificat.

C'est tout et merci à tous pour votre aide!

    
0
2019-03-18 22: 31: 08Z
[acme]
source placée ici
D\'autres questions