IPv6 in Mailcow einrichten: Cannot validate any hostnames | 02.07.2024
Ich richte nun nicht jeden Tag eine Mailcow-Instanz ein. Aber es war mal Zeit für Xzit einen Mailserver einzurichten. Mailcow ist gigantisch. Habe ich ja schon hier und da beschieben. Also schnell VPS (hier bei Contabo) aufgesetzt und eine IPv6 statisch hinterlegt. Nachdem die IPv6-Konnektivität auf dem Server funktionierte und die korrekte IPv6-Adresse sowohl im Mailcow-UI als auch in den DNS-Einträgen hinterlegt war, stellte sich heraus, dass dennoch Probleme bestanden. Im Mailcow-UI wurde die richtige IPv6-Adresse angezeigt, die auch in den DNS-Einträgen hinterlegt war.
Fehlermeldung im ACME-Log:
02.07.2024, 21:45:53 fancy-xzit-mailserver - Use SKIP_LETS_ENCRYPT=y in mailcow.conf to skip it permanently.
02.07.2024, 21:45:53 fancy-xzit-mailserver - Cannot validate any hostnames, skipping Let's Encrypt for 1 hour.
02.07.2024, 21:45:53 fancy-xzit-mailserver - Confirmed AAAA record with IP 2a02:beef:beef:beef:beef:beef:beef:beef, but HTTP validation failed
02.07.2024, 21:45:53 fancy-xzit-mailserver - Found AAAA record for fancy-xzit-mailserver: 2a02:beef:beef:::1 - skipping A record check
02.07.2024, 21:45:53 fancy-xzit-mailserver - OK: 194.163.xxx.xxx, 2a02:xxxx:xxxx:xxxx::1
02.07.2024, 21:45:52 fancy-xzit-mailserver - Detecting IP addresses...
02.07.2024, 21:45:52 fancy-xzit-mailserver - Using existing Lets Encrypt account key /var/lib/acme/acme/account.pem
02.07.2024, 21:45:52 fancy-xzit-mailserver - Using existing domain rsa key /var/lib/acme/acme/key.pem
02.07.2024, 21:45:52 fancy-xzit-mailserver - Initializing, please wait...
02.07.2024, 21:45:52 fancy-xzit-mailserver - OK
02.07.2024, 21:45:51 fancy-xzit-mailserver - Waiting for domain table...
02.07.2024, 21:45:51 fancy-xzit-mailserver - Resolver OK
02.07.2024, 21:45:51 fancy-xzit-mailserver - Waiting for resolver...
02.07.2024, 21:45:51 fancy-xzit-mailserver - Nginx OK
02.07.2024, 21:45:51 fancy-xzit-mailserver - Waiting for Nginx...
02.07.2024, 21:45:51 fancy-xzit-mailserver - Database OK
02.07.2024, 21:45:51 fancy-xzit-mailserver - Waiting for database...
02.07.2024, 21:45:50 fancy-xzit-mailserver - Dovecot OK
02.07.2024, 21:45:50 fancy-xzit-mailserver - Waiting for Dovecot...
02.07.2024, 21:45:50 fancy-xzit-mailserver - Postfix OK
02.07.2024, 21:45:50 fancy-xzit-mailserver - Waiting for Postfix...
02.07.2024, 21:45:50 fancy-xzit-mailserver - Docker API OK
02.07.2024, 21:45:50 fancy-xzit-mailserver - Waiting for Docker API
Erst nach einigem Herumprobieren und Recherchieren stieß ich auf die Möglichkeit, die einzelnen Services direkt auf die IPv6-Adresse zu binden. Hätte ich mal die Anleitung von Anfang bis Ende gelesen ;-)
In der Konfiguration ab Repo, kommt Mailcow eigentlich mit allen notwendigen Einstellungen. Und wenn nicht über einen Revers-Proxy gegangen wird, bedarf es nur einer kleinen Anpassung. Um Update-Fähigkeit zu behalten, wird einfach eine Datei docker-compose.override.yml
erstellt. Diese wird mit der produktiven docker-compose.yml
-Datei zusammengeführt und ermöglicht so eine stabile Konfiguration auch nach Updates. In diese Datei kommen dann die Definitionen der Services bzw. die Definition der IPv6-Konnektivität. Hier die Kopie aus der Dokumentation:
services:
dovecot-mailcow:
ports:
- '[2001:db8:dead:beef::123]:143:143'
- '[2001:db8:dead:beef::123]:993:993'
- '[2001:db8:dead:beef::123]:110:110'
- '[2001:db8:dead:beef::123]:995:995'
- '[2001:db8:dead:beef::123]:4190:4190'
postfix-mailcow:
ports:
- '[2001:db8:dead:beef::123]:25:25'
- '[2001:db8:dead:beef::123]:465:465'
- '[2001:db8:dead:beef::123]:587:587'
nginx-mailcow:
ports:
- '[2001:db8:dead:beef::123]:80:80'
- '[2001:db8:dead:beef::123]:443:443'
Um die Änderungen anzuwenden, müssen Sie die Docker-Compose-Dienste neu starten. Nutzen Sie dazu die folgenden Befehle:
docker compose down
docker compose up -d