Traefik v2 (von der Community unterstützt)
Wichtig
Lesen Sie zuerst die Übersicht.
Vorsicht
Dies ist ein von der Community unterstützter Beitrag. Korrekturen sind willkommen.
Dieses Tutorial erklärt, wie man mailcow mit Traefik als Reverse-Proxy einrichtet, um HTTPS-Verbindungen, Domain-Routing und Zertifikatsmanagement zu handhaben.
Voraussetzungen¶
- Traefik v2.x installiert und lauffähig
- Domainnamen konfiguriert, die auf Ihren Server zeigen, gemäß diesem Leitfaden
Überblick¶
Traefik übernimmt den gesamten eingehenden Webverkehr und leitet die entsprechenden Anfragen an mailcow weiter. Diese Konfiguration ermöglicht es Traefik:
- SSL-Zertifikate zu verwalten
- Autodiscover- und Autoconfig-Dienste bereitzustellen
- Die Frontend-Benutzeroberfläche zu bedienen
- ACME-Challenge-Antworten für die Zertifikatsvalidierung des Mail-Servers zu übernehmen
Schritt 1: Aktualisieren der mailcow-Konfiguration¶
Ändern Sie zunächst Ihre mailcow.conf
oder .env
Datei, um die SSL-Handhabung von mailcow zu deaktivieren:
# Deaktiviere mailcow Autodiscover SAN
AUTODISCOVER_SAN=n
Schritt 2: Konfigurieren der dynamischen Traefik-Konfiguration¶
Erstellen oder aktualisieren Sie Ihre dynamische Traefik-Konfigurationsdatei mit dem folgenden Inhalt:
http:
routers:
mailcow-acme:
entryPoints: web
rule: "(Host(`mx.domain.com`) && PathPrefix(`/.well-known/acme-challenge/`))" # Der Host sollte gleich Ihrem MAILCOW_HOSTNAME sein
service: mailcow-acme
tls: false
mailcow-frontend:
entryPoints: "websecure"
rule: "Host(`mail.domain.com`)"
service: mailcow-frontend
tls:
certResolver: cloudflare
mailcow-autoconfig:
entryPoints: "websecure"
rule: "Host(`autoconfig.domain.com`)"
service: mailcow-frontend
tls:
certResolver: cloudflare
mailcow-autodiscover:
entryPoints: "websecure"
rule: "Host(`autodiscover.domain.com`)"
service: mailcow-frontend
tls:
certResolver: cloudflare
services:
mailcow-acme:
loadBalancer:
servers:
- url: "http://10.0.0.16:80" # mailcow lokale IP und Webport
mailcow-frontend:
loadBalancer:
servers:
- url: "http://10.0.0.16:80" # mailcow lokale IP und Webport
Wichtige Hinweise zu dieser Konfiguration:
- Ersetzen Sie
mx.domain.com
,mail.domain.com
,autoconfig.domain.com
undautodiscover.domain.com
durch Ihre tatsächlichen Domainnamen - Aktualisieren Sie
10.0.0.16
mit der tatsächlichen IP-Adresse Ihres mailcow-Servers entryPoints: "websecure"
- ersetzen Sie dies durch Ihren tatsächlichen Traefik-HTTPS-EntrypointcertResolver: cloudflare
- ersetzen Sie dies durch Ihren tatsächlichen Zertifikatsresolver
Schritt 3: Neustarten der Dienste¶
Starten Sie beide Dienste neu, um die Änderungen zu übernehmen:
# mailcow neustarten
cd /path/to/mailcow-dockerized
docker compose up -d
# mailcow neustarten
cd /path/to/mailcow-dockerized
docker-compose up -d
Testen der Konfiguration¶
- Besuchen Sie
https://mail.domain.com
, um zu prüfen, ob die mailcow-Web-Oberfläche ordnungsgemäß geladen wird - Konfigurieren Sie einen E-Mail-Client, um die Autodiscover-Funktionalität zu testen
- Überwachen Sie die Traefik-Protokolle auf eventuelle Routing- oder Zertifikatsfehler
Problembehandlung¶
Zertifikatsprobleme¶
- Prüfen Sie die Traefik-Protokolle auf Fehlschläge bei Zertifikatsanfragen
- Stellen Sie sicher, dass die DNS-Einträge ordnungsgemäß konfiguriert sind
- Prüfen Sie die Protokolle des
acme-mailcow
Containers
Routing-Probleme¶
- Überprüfen Sie die Netzwerkverbindung zwischen Traefik und mailcow
- Stellen Sie sicher, dass die mailcow IP-Adresse in der Traefik-Konfiguration korrekt ist
- Vergewissern Sie sich, dass alle erforderlichen Ports in den Firewalls geöffnet sind
Dienstzugriffsprobleme¶
- Prüfen Sie, ob die
Host
Regeln mit Ihren tatsächlichen Domainnamen übereinstimmen - Stellen Sie sicher, dass die mailcow-Dienste intern auf Port 80 laufen und erreichbar sind