Ein Reverse-Proxy mit Traefik in Docker soll mehrere interne Dienste über Subdomains erreichbar machen.
Dabei übernimmt Traefik:
/admin, /dokuwiki)| Dienst | Subdomain | Zielintern (HTTP) |
| —————- | ———————————– | ——————————- |
| Portainer | portainer.xxxxxx.dedyn.io | Docker-Port 9000 |
| Traefik-Dashboard | traefik.xxxxxx.dedyn.io | Interner Dienst (api@internal) |
| Pi-hole | pihole.xxxxxx.dedyn.io | http://192.168.xxx.xxx/admin |
| DokuWiki | wiki.xxxxxx.dedyn.io | http://192.168.xxx.xxx/dokuwiki/ |
| phpMyAdmin | phpmyadmin.xxxxxx.dedyn.io | http://192.168.xxx.xxx/phpmyadmin |
| Webroot | web.xxxxxx.dedyn.io | http://192.168.xxx.xxx/index.php |
traefik, lam, portainer, ldap, samba/letsencrypt/acme.jsondynamic.yml als externe Konfiguration (/etc/traefik/dynamic.yml)traefik.yml als statische Konfiguration (/etc/traefik/traefik.yml)log: level: INFO api: dashboard: true entryPoints: web: address: ":80" websecure: address: ":443" providers: docker: exposedByDefault: false file: filename: /etc/traefik/dynamic.yml watch: true certificatesResolvers: le: acme: email: user@Email.de storage: /letsencrypt/acme.json httpChallenge: entryPoint: web
pihole, dokuwiki, webroot)redirectRegex) zur Umleitung auf /admin, /dokuwiki/ usw./.well-known/acme-challenge/Beispiel für Pi-hole:
pihole: rule: "Host(`pihole.xxxxxx.dedyn.io`)" entryPoints: - websecure tls: certResolver: le service: pihole-svc middlewares: - pihole-redirect
ACME-HTTP-Router:
acme-http: rule: "PathPrefix(`/.well-known/acme-challenge/`)" entryPoints: - web service: noop priority: 100
Dummy-Service:
noop: loadBalancer: servers: - url: "http://127.0.0.1"
/letsencrypt/acme.jsonTraefik vergibt „TRAEFIK DEFAULT CERT“ nur, wenn: - Port 80 blockiert ist - keine Challenge erfolgreich - kein Zertifikat gecached
Wichtig:
- HTTPS auf Apache deaktiviert (a2dissite default-ssl.conf)
- Nur HTTP (Port 80) aktiviert
- Keine Redirects von HTTP → HTTPS im Apache
| Problem | Ursache | Lösung |
| ——————————- | ——————————————- | ———————————————- |
TRAEFIK DEFAULT CERT | Zertifikat nicht erfolgreich angefordert | ACME-Router eingebaut, HTTP erreichbar gemacht |
404 bei /dokuwiki | Root-Pfad falsch | Middleware redirectRegex eingebaut |
| Browser zeigt „nicht sicher“ | Browser-Cache / HSTS | chrome://net-internals/#hsts + löschen |
dynamic.yml
Lars Weiß 27.05.2025 12:55