bonjour à tous
Je fais differents tests de reverse proxy :
npm : simple mais je n'ai pas encore réussi à faire tout ce que je veux
swag : bien mais configuration de mise à jour un peu plus compliquée
J'essaie depuis plusieurs jours et de multiples essais d'installer traefik avec OVH, mais à priori il me manque plein de notions
J'ai reussi avec http challenge mais je n'arrive pas avec un DNS challenge, j'ai un message d'erreur:
Code :
- 2024-07-02T15:06:35Z DBG github.com/go-acme/lego/v4@v4.17.4/log/logger.go:48 > [INFO] Deactivating auth: https://acme-staging-v02.api.letsen [...] 3000469973 lib=lego2024-07-02T15:06:35Z ERR github.com/traefik/traefik/v3/pkg/provider/acme/provider.go:396 > Unable to obtain ACME certificate for domains error="unable to generate a certificate for the domains [whoami.blabla.ovh]: error: one or more domains had a problem:\n[whoami.blabla.ovh] [whoami.blabla.ovh] acme: error presenting token: ovh: error when call api to add record (/domain/zone/blabla.ovh/record): OVHcloud API error (status code 403): \"This credential does not exist\" (X-OVH-Query-Id: EU.ext-3.6684184b.1606961.d945975e45961dzz!fn35f!97bbaf7e116f1b)\n" ACME CA=https://acme-staging-v02.api.letsencrypt.org/directory acmeCA=https://acme-staging-v02.api.letsencrypt.org/directory domains=["whoami.blabla.ovh"] providerName=myresolver.acme routerName=whoami@docker rule=Host(`whoami.blabla.ovh`)
|
mon materiel :
IP fixe chez free
udm Pro d'unifi avec blocage d'ip en dehors de la france
un serveur de test avec proxmox et dont une VM linux 12 dédiée aux essais de docker : IP : 10.0.1.105
un adguard home en prod sur un autre serveur (de prod donc) en macvlan. IP: 10.0.1.100
vaulwarden (prod)
un lxc nextcloud (prod)
etc …
En nom de domaine pour l'instant, je suis avec duckdns, mais j'ai acheté un nom de domaine ovh: blabla.ovh
il y a bien plusieurs tuto youtube (par exemple technotim pour la V3 de traefik) mais avec cloudflare mais je n'ai rien trouvé avec OVH.
j'ai trouvé d'autres tuto sur ovh en vrac sur le net :
https://martinsamouiller.com/projects/1_traefik/
https://web.archive.org/web/2023020 [...] lenge-ovh/
J ai regardé sur les forums d'ovh, traefik, ….
J'ai arreté les differents services type : adguardhome,vaultwarden, duckdns,npm car sinon il prend en compte ces certificats
pour le http challenge : Succes
- arret de geoblocage par l'udm (sinon pas de letsencrypt)
- sur l' UDM : ports 80 et 443 ouvert vers l'ip de serveur docker avec traefik en TCP
- sur OVH : blabla.ovh. type A vers mon ip fixe
whoami.blabla.ovh type A vers mon ip fixe
- reseau docker nommé proxy pour traefik
DNS challenge : Echec
J'ai suivi la doc officielle de traefik pour le DNS challenge
https://doc.traefik.io/traefik/user [...] /acme-dns/
et la liste des providers dont OVH
https://doc.traefik.io/traefik/https/acme/#providers
Cependant, je vois qu'il faut OVH_CLIENT_ID, OVH_CLIENT_SECRET. mais qui n'apparait pas dans le doc officielle, ni les tutos.
J'ai bien crée les apikey chez ovh dans un premier temps pour un jour et je fais mes tests avec acme-staging pour letsencrypt:
GET /domain/zone/blabla.ovh
PUT /domain/zone/blabla.ovh
POST /domain/zone/blabla.ovh
DELETE /domain/zone/blabla.ovh/record
J'ai fait des essais avec adguardhome en configurant la réecriture de DNS :
whoami.blabla.ovh vers IP docker :10.0.1.105
Dois je changer des choses sur OVH, dans le forward du routeur ?
Si je comprends bien, le message d'erreur, ce serait lié à l apikey ?
Code :
- 2024-07-02T15:06:34Z DBG github.com/go-acme/lego/v4@v4.17.4/log/logger.go:48 > [INFO] [whoami.blabla.ovh] acme: Preparing to solve DNS-01 lib=lego
- 2024-07-02T15:06:35Z DBG github.com/go-acme/lego/v4@v4.17.4/log/logger.go:48 > [INFO] [whoami.blabla.ovh] acme: Cleaning DNS-01 challenge lib=lego
- 2024-07-02T15:06:35Z DBG github.com/go-acme/lego/v4@v4.17.4/log/logger.go:48 > [WARN] [whoami.blabla.ovh] acme: cleaning up failed: ovh: unknown record ID for '_acme-challenge.whoami.kroy.ovh.' lib=lego
- 2024-07-02T15:06:35Z DBG github.com/go-acme/lego/v4@v4.17.4/log/logger.go:48 > [INFO] Deactivating auth: https://acme-staging-v02.api.letsen [...] 3000469973 lib=lego2024-07-02T15:06:35Z ERR github.com/traefik/traefik/v3/pkg/provider/acme/provider.go:396 > Unable to obtain ACME certificate for domains error="unable to generate a certificate for the domains [whoami.blabla.ovh]: error: one or more domains had a problem:\n[whoami.blabla.ovh] [whoami.blabla.ovh] acme: error presenting token: ovh: error when call api to add record (/domain/zone/blabla.ovh/record): OVHcloud API error (status code 403): \"This credential does not exist\" (X-OVH-Query-Id: EU.ext-3.6684184b.1606961.d945975e45961dzz!fn35f!97bbaf7e116f1b)\n" ACME CA=https://acme-staging-v02.api.letsencrypt.org/directory acmeCA=https://acme-staging-v02.api.letsencrypt.org/directory domains=["whoami.blabla.ovh"] providerName=myresolver.acme routerName=whoami@docker rule=Host(`whoami.blabla.ovh`)
|
Bref vous l'aurez compris, à force d'essais et d'echecs, j en appelle aux pouvoirs du forum HFR pour m'aiguiller et m'indiquer les erreurs et notions que je n'ai pas.
Sinon, je prends la solution de facilité et je prends un nom de domaine chez cloudflare ….. et utiliser pihole
dernier essai de docker-compose.yml
Code :
- version: "3.7"
- services:
- traefik:
- image: "traefik:latest"
- container_name: "traefik"
- restart: always
- networks:
- - proxy
- ports:
- - "80:80"
- - "443:443"
- - "8080:8080"
- command:
- - "--log.level=DEBUG"
- - "--api.insecure=true"
- - "--providers.docker=true"
- - "--providers.docker.exposedbydefault=false"
- - "--entrypoints.web.address=:80"
- #Redirection du port 80 sur 443
- - "--entrypoints.web.http.redirections.entrypoint.to=websecure"
- - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- - "--entrypoints.websecure.address=:443"
- - "--entrypoints.websecure.http.tls=true"
- - "--entrypoints.websecure.http.tls.certResolver=myresolver"
- #Domaine principale
- - "--entrypoints.websecure.http.tls.domains[0].main=blabla.ovh"
- #Sub-domaines (optionel)
- - "--entrypoints.websecure.http.tls.domains[0].sans=*.blabla.ovh"
- #Remplacer par votre adresse email
- - "--certificatesresolvers.myresolver.acme.email=blabla@gmail.com"
- - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
- - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
- - "--certificatesresolvers.myresolver.acme.dnschallenge=true"
- #Provider OVH
- - "--certificatesresolvers.myresolver.acme.dnschallenge.provider=ovh"
- - "--certificatesresolvers.myresolver.acme.dnschallenge.delaybeforecheck=10"
- - "--certificatesresolvers.myresolver.acme.dnschallenge.disablepropagationcheck=true"
- #Zones DNS
- - "--certificatesresolvers.myresolver.acme.dnschallenge.resolvers=dnsXXX.ovh.net,nsXXX.net"
- - "--accesslog=true"
- - "--accesslog.filepath=/logs/access.log"
-
- environment:
- - "OVH_ENDPOINT=ovh-eu"
- - "OVH_APPLICATION_KEY=XXXXXXXXXXXXXXXXXXXXXXX"
- - "OVH_APPLICATION_SECRET=XXxXXXXXXXXXXXXX"
- - "OVH_CONSUMER_KEY=XXXXXXXXXXXXXXXXXXXX"
- labels:
- - "traefik.http.routers.api.service=api@internal"
- - "traefik.http.routers.api.entrypoints=websecure,web"
-
- volumes:
- - "./logs/:/logs/"
- - "./letsencrypt:/letsencrypt"
- - "/var/run/docker.sock:/var/run/docker.sock:ro"
- whoami:
- image: "traefik/whoami"
- container_name: "simple-service"
- labels:
- - "traefik.enable=true"
- - "traefik.http.routers.whoami.rule=Host(`whoami.blabla.ovh`)"
- - "traefik.http.routers.whoami.entrypoints=websecure"
- - "traefik.http.routers.whoami.tls.certresolver=myresolver"
- networks:
- - proxy
- networks:
- proxy:
- external: true
|
En vous remerciant.