mailcow DNS-01 Challenge mit Infomaniak¶
Problem¶
Bei der Konfiguration von mailcow mit DNS-01 Challenge via Infomaniak meldet der acme-mailcow Container zwar erfolgreich:
[Thu Mar 26 17:56:17 CET 2026] Record added
[Thu Mar 26 17:56:17 CET 2026] The TXT record has been successfully added.
Trotzdem wird der _acme-challenge TXT-Record nicht wirklich in der DNS-Zone erstellt. acme.sh schlägt anschliessend bei der Validierung still fehl:
Ursache¶
Das Infomaniak API-Token hatte nicht alle benötigten Scopes. Das dns_infomaniak Plugin von acme.sh benötigt domain:read um zuerst die interne Domain-ID zu ermitteln (z.B. 123456 für domain.tld), bevor es DNS-Records schreiben kann. Fehlt dieser Scope, liefert die API trotzdem HTTP 200 zurück — acme.sh wertet das fälschlicherweise als Erfolg, obwohl der Record nie gesetzt wurde.
Lösung¶
Beim Erstellen des API-Tokens unter https://manager.infomaniak.com/v3/<account_id>/api/dashboard müssen alle drei folgenden Scopes vergeben werden:
| Scope | Beschreibung |
|---|---|
domain:read |
Zugriff auf Informationen über Domain-Produkte (wird benötigt um die Domain-ID zu ermitteln) |
dns:read |
Informationen über DNS-Zonen und DNS-Einträge lesen |
dns:write |
DNS-Zonen und DNS-Einträge verwalten |
Konfiguration¶
mailcow.conf¶
data/conf/acme/dns-01.conf¶
Diagnose¶
Um zu prüfen ob das Token die richtigen Berechtigungen hat, kann die Infomaniak API direkt getestet werden:
# Domains auflisten (braucht domain:read)
curl -H "Authorization: Bearer DEIN_TOKEN" \
"https://api.infomaniak.com/1/product?service_name=domain"
# DNS-Records einer Domain lesen (braucht dns:read)
# Die DOMAIN_ID aus dem obigen Aufruf entnehmen (Feld "id" beim jeweiligen Eintrag)
curl -H "Authorization: Bearer DEIN_TOKEN" \
"https://api.infomaniak.com/1/domain/123456/dns/record"
Gibt der zweite Aufruf die DNS-Records zurück, sind die Berechtigungen korrekt.
Getestete Version¶
- mailcow 2026-03a
- acme.sh mit
dns_infomaniakPlugin