Skip to content

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:

[Thu Mar 26 17:56:39 CET 2026] Not valid yet, let's wait for 10 seconds then check the next one.

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

ACME_DNS_CHALLENGE=y
ACME_DNS_PROVIDER=dns_infomaniak
ACME_ACCOUNT_EMAIL=mail@domain.tld

data/conf/acme/dns-01.conf

INFOMANIAK_API_TOKEN=dein-api-token

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_infomaniak Plugin