Fehlermeldung
dkim=permerror
Auch ausgegeben als
- dkim=neutral (signature syntax error)
OpenDKIM schreibt ein bloßes `dkim=permerror` ohne Grund (reproduziert mit Signaturen ohne `bh=`, mit `v=2`, mit unbekanntem `a=` und mit `i=` außerhalb von `d=`). mailauth meldet Syntaxprobleme als `dkim=neutral` mit einem Kommentar, der das Problem nennt, und greift ersatzweise auf „signature syntax error“ zurück.
Was der Fehler bedeutet
Die DKIM-Signatur ließ sich überhaupt nicht auswerten, und ein erneuter Versuch hilft nicht: Der Header `DKIM-Signature` ist syntaktisch fehlerhaft oder verstößt gegen die Regeln von RFC 6376 (ein fehlendes Pflicht-Tag wie `bh=` oder `b=`, eine unbekannte Version, ein nicht unterstützter Algorithmus, eine Identität `i=` außerhalb der Domain `d=`, `From` nicht unter den signierten Headern), oder der Eintrag mit dem öffentlichen Schlüssel ist unbrauchbar. RFC 8601 nennt das einen permanenten Fehler. Für DMARC zählt ein solches Ergebnis nicht als bestanden.
Warum der Fehler auftritt
Fehlerhafter oder abgeschnittener Header DKIM-Signature
häufigSelbst geschriebener Signiercode, der Tags weglässt, Relays, die lange Header falsch falten oder abschneiden, oder ein Signatur-Header, den ein Mail-Client durch Umkodieren beschädigt hat.
Algorithmus, den der Verifizierer nicht unterstützt
gelegentlich`a=rsa-sha1` (durch RFC 8301 als veraltet eingestuft) oder `ed25519-sha256` bei einem älteren Empfänger. Signierst du sowohl mit RSA-SHA256 als auch mit Ed25519, deckst du jeden Empfänger ab.
i= außerhalb der signierenden Domain
gelegentlichDie Agentenkennung `i=` muss in `d=` oder einer Subdomain davon liegen. `d=example.com; i=@example.org` ist ungültig.
Der Header From ist nicht signiert
gelegentlichRFC 6376 verlangt `From` in `h=`. Ein Signierer mit einer eigenen Header-Liste, die ihn auslässt, erzeugt Signaturen, die Empfänger ablehnen.
So behebst du den Fehler
- 1.
Tags der Signatur auflisten
Entfalte den Header und prüfe die Pflicht-Tags und ihre Werte; der DKIM-Debugger erledigt das und nennt das fehlerhafte Tag.
bash # Show the DKIM-Signature as one line and list its tags awk '/^DKIM-Signature:/{p=1} p&&/^[^ \t]/&&!/^DKIM-Signature:/{p=0} p' message.eml | tr -d '\r\n\t' | tr ';' '\n' # required: v=1 a= b= bh= d= h= (containing "from") s= - 2.
Standardkonfiguration des Signierers verwenden
RSA-SHA256 (optional zusätzlich Ed25519), `From` signiert (und übersigniert) und eine gepflegte Signaturimplementierung statt eigenen Codes.
text # OpenDKIM signer: standard algorithm, From always signed SignatureAlgorithm rsa-sha256 OversignHeaders From Canonicalization relaxed/simple
Verwandte Fehler
dkim=fail reason="signature verification failed"OpenDKIM (Authentication-Results header added by the opendkim milter); mailauth reports the same as "bad signature"dkim=fail reason="key not found in DNS"OpenDKIM (Authentication-Results); mailauth reports it as dkim=neutral (no key)dkim=fail (body hash did not verify)DKIM verifiers (Gmail, mailauth, Rspamd…)