Bonjour,
Je viens vers vous pour demander de l'aide je suis en train de m'arracher les cheveux.
Voulant commencer à utiliser Authentik, j'ai dû mettre un terme à l'utilisation du reverse proxy de Synology et mettre en place Traefik.
Après de nombreux problèmes, j'ai réussi à faire fonctionner Traefik en local.
A savoir : J'utilise en local le DNS Server de Synology.
Traefik est placé dans un container en macvlan à l'IP 192.168.0.102, le Synology a une route avec son IP 192.168.0.103 et l'IP réseau (pour la box) du Synology est 192.168.0.48
Après avoir obtenu un certificat wildcard via Traefik et Let's Encrypt, je souhaite rendre certains sous-domaines accessibles depuis l'extérieur.
J'ai bien ajouté la redirection des ports 80 et 443 vers l'IP Traefik (192.168.0.102) sur la box.
Cependant, quand j'essaie d'accéder à un conteneur depuis l'extérieur, j'ai ces erreurs :
level=debug msg="http: TLS handshake error from XXX.XXX.XXX.XXX:2149: write tcp 192.168.0.102:443->XXX.XXX.XXX.XXX:2149: write: connection reset by peer"
level=debug msg="http: TLS handshake error from XXX.XXX.XXX.XXX:2150: write tcp 192.168.0.102:443->XXX.XXX.XXX.XXX:2150: write: connection reset by peer"
level=debug msg="http: TLS handshake error from XXX.XXX.XXX.XXX:2151: tls: client offered only unsupported versions: [301]"
En local, je vois bien le certificat Let's Encrypt valide sur les containers que je visite.
J'ai tenté l'entraide de communauté Traefik mais cela ne donne pour l'instant rien et je pense que le problème vient du macvlan sur Synology
Voici mes configurations :
docker-compose Traefik
version: '3'
secrets:
ovh_application_key:
file: blabla
ovh_application_secret:
file: blabla
ovh_consumer_key:
file: blabla
services:
traefik:
image: traefik:latest
container_name: traefik
restart: unless-stopped
networks:
macvlan:
traefik:
volumes:
- /volume1/docker/traefik/config:/etc/traefik
- /etc/localtime:/etc/localtime:ro
labels:
traefik.enable: true
traefik.http.routers.dashboard.rule: Host(`traefik.mydomain.com`)
traefik.http.routers.dashboard.service: api@internal
traefik.http.routers.dashboard.middlewares: auth
traefik.http.routers.dashboard.entrypoints: websecure
traefik.http.middlewares.auth.basicauth.users: XXXXXXXXXXXXX
depends_on:
- socket-proxy
secrets:
- ovh_application_key
- ovh_application_secret
- ovh_consumer_key
environment:
OVH_ENDPOINT: ovh-eu
OVH_APPLICATION_KEY_FILE: /run/secrets/ovh_application_key
OVH_APPLICATION_SECRET_FILE: /run/secrets/ovh_application_secret
OVH_CONSUMER_KEY_FILE: /run/secrets/ovh_consumer_key
socket-proxy:
image: tecnativa/docker-socket-proxy
container_name: traefik_docker_socket-proxy
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
CONTAINERS: 1
networks:
- traefik
networks:
macvlan:
name: macvlan
traefik:
name: traefik
Configuration statique traefik.yml
global:
checkNewVersion: true
sendAnonymousUsage: false
entrypoints:
web:
address: :80
http:
redirections:
entryPoint:
to: websecure
scheme: https
websecure:
address: :443
http:
tls:
certResolver: letsencrypt
domains:
- main: mydomain.com
sans: "*.mydomain.com"
forwardedHeaders:
traefik:
address: :8080
ping : {}
log:
level: debug
accessLog:
filePath: "/etc/traefik/access.log"
serversTransport:
insecureSkipVerify: true
api:
dashboard: true
debug: true
providers:
docker:
endpoint: tcp://socket-proxy:2375
exposedByDefault: false
file:
filename: /etc/traefik/rules.yml
certificatesResolvers:
letsencrypt:
acme:
email: XXXXX
storage: /etc/traefik/acme.json
caServer: "https://acme-v02.api.letsencrypt.org/directory"
dnsChallenge:
provider: ovh
resolvers:
- "1.1.1.1:53"
- "8.8.8.8:53"
Un conteneur que j'essaie d'accéder
version: '3.8'
services:
pingvin-share:
image: stonith404/pingvin-share
container_name: pingvin-share
restart: unless-stopped
environment:
- PORT:3000
volumes:
- blabla
- blabla
networks:
traefik:
labels:
traefik.enable: true
traefik.http.routers.pingvin-share.rule: Host(`share.mydomain.com`)
traefik.http.routers.pingvin-share.entrypoints: websecure
traefik.http.routers.pingvin-share.tls: true
traefik.http.routers.pingvin-share.tls.certresolver: letsencrypt
networks:
traefik:
external: true
Merci pour votre aide