Was ist ein DKIM-Eintrag?
DKIM (DomainKeys Identified Mail, RFC 6376) versieht jede Nachricht, die Ihr Server sendet, mit einer digitalen Signatur. Die Signatur wird mit einem privaten Schlüssel erstellt, der auf dem Server bleibt. Der passende öffentliche Schlüssel wird als TXT-Eintrag unter selector._domainkey.yourdomain.com im DNS veröffentlicht, und Empfänger rufen ihn ab, um zu prüfen, ob die Nachricht wirklich von Ihrer Domain stammt und unterwegs nicht verändert wurde.
Der Selektor ist einfach ein Name Ihrer Wahl, etwa default oder s1. Damit kann eine Domain mehrere Schlüssel gleichzeitig veröffentlichen, einen pro Dienst oder pro Schlüsselgeneration. Eine gültige DKIM-Signatur Ihrer eigenen Domain sorgt außerdem dafür, dass Mails DMARC bestehen, wenn SPF nicht passt, zum Beispiel nach einer Weiterleitung.

Müssen Sie Ihren eigenen DKIM-Schlüssel erzeugen?
Oft nicht. Google Workspace erstellt den Schlüssel für Sie (Admin-Konsole, Apps, Google Workspace, Gmail, E-Mail authentifizieren), und Microsoft 365 nutzt zwei CNAME-Einträge, selector1._domainkey und selector2._domainkey, die auf von Microsoft verwaltete Schlüssel zeigen. Auch die meisten Newsletter- und Transaktionsdienste liefern Ihnen ihre eigenen Einträge.
Ein eigenes Schlüsselpaar brauchen Sie, wenn Sie den Mailserver selbst betreiben, zum Beispiel Postfix mit OpenDKIM oder rspamd oder Exim, oder wenn eine App oder ein Relay das Hochladen eines privaten Schlüssels verlangt. Genau dafür ist dieser Generator da.
Advertisement
DKIM-Schlüssel generieren und den Eintrag veröffentlichen
Der Selektor darf aus Buchstaben, Ziffern und Bindestrichen bestehen. Ein datumsbasierter Name wie s2026 macht die Schlüsselrotation leicht nachvollziehbar.
RSA mit 2048 Bit ist für fast alle die richtige Wahl. Das Schlüsselpaar wird in Ihrem Browser erzeugt, sobald die Seite lädt, und erneut, wenn Sie den Typ ändern.
Laden Sie ihn herunter und installieren Sie ihn auf Ihrem Mailserver. Er wird nirgends gespeichert. Geht er verloren, brauchen Sie ein neues Paar.
Legen Sie einen TXT-Eintrag mit dem Host selector._domainkey und dem generierten Wert an, senden Sie sich selbst eine Nachricht und prüfen Sie sie mit dem DKIM-Prüfer.
Syntax des DKIM-Eintrags
Ein DKIM-Schlüsseleintrag ist eine Liste von Tag=Wert-Paaren, getrennt durch Semikolons. Nur p= ist Pflicht, veröffentlichen Sie aber auch v und k.
Kennzeichnet den Eintrag als DKIM-Schlüssel. Falls vorhanden, muss das Tag an erster Stelle stehen.
Der Schlüsselalgorithmus. Fehlt das Tag, gilt rsa.
Der öffentliche Schlüssel in Base64. Ein leeres p= bedeutet, dass der Schlüssel widerrufen wurde und damit erstellte Signaturen fehlschlagen.
Bittet Empfänger, die Domain so zu behandeln, als teste sie DKIM. Entfernen Sie das Tag, sobald die Signaturen verifiziert werden.
Strikter Modus: Die i=-Identität einer Signatur muss genau die d=-Domain verwenden, keine Subdomain davon.
Beschränken die Hash-Algorithmen (h=sha256) oder den Dienst, für den der Schlüssel gilt (s=email). Die meisten Einträge lassen sie weg.
Advertisement
RSA 2048 vs 1024 vs 4096 vs Ed25519
RSA 2048 Bit: die empfohlene Größe. Laut RFC 8301 sollten Signierer mindestens 2048 Bit verwenden. Der TXT-Wert hat rund 410 Zeichen.
RSA 1024 Bit: wird noch verifiziert und ist das Minimum, das Empfänger akzeptieren, nach heutigen Maßstäben aber schwach. Signaturen mit kürzeren Schlüsseln gelten nicht als gültig. Nutzen Sie diese Größe nur, wenn Ihr DNS-Anbieter keinen längeren Wert speichern kann.
RSA 4096 Bit: Empfänger müssen Schlüssel bis 4096 Bit verifizieren, aber der Wert hat rund 750 Zeichen, und manche DNS-Oberflächen und ältere Systeme kommen damit schlecht zurecht. Gegenüber 2048 bringt er wenig.
Ed25519: ein moderner, viel kürzerer Schlüssel (der ganze Eintrag hat rund 66 Zeichen, RFC 8463). Noch verifiziert ihn nicht jeder Empfänger, signieren Sie daher zusätzlich mit einem RSA-Schlüssel unter einem zweiten Selektor.
Warum ist mein DKIM-Eintrag in mehrere Strings aufgeteilt?
Ein einzelner TXT-String fasst höchstens 255 Zeichen, und ein DKIM-Wert mit 2048 Bit ist länger. DNS löst das, indem der Wert als mehrere Strings in Anführungszeichen gespeichert wird, die Empfänger wieder zusammenfügen.
Die meisten DNS-Dashboards übernehmen den langen Wert unverändert und teilen ihn selbst auf. Bei Amazon Route 53 und BIND-Zonendateien müssen Sie die aufgeteilte Form selbst eintragen, und genau die liefert der Zonendatei-Button (fügen Sie in Route 53 nur die Strings in Anführungszeichen ein, in einer Zeile). Fügen Sie keine Leerzeichen oder Zeilenumbrüche in den Schlüssel ein und verteilen Sie die Hälften nicht auf getrennte Einträge.
Advertisement
Schlüssel auf Ihrem Mailserver einrichten
Speichern Sie den privaten Schlüssel als default.private (mit Ihrem eigenen Selektor), machen Sie ihn nur für den Signierdienst lesbar und verweisen Sie den Signierer darauf. Ein OpenDKIM-Beispiel für example.com mit dem Selektor default:
sudo mkdir -p /etc/opendkim/keys/example.com
sudo mv default.private /etc/opendkim/keys/example.com/
sudo chown opendkim:opendkim /etc/opendkim/keys/example.com/default.private
sudo chmod 600 /etc/opendkim/keys/example.com/default.privatedefault._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default.private*@example.com default._domainkey.example.comopenssl genrsa -out default.private 2048
openssl rsa -in default.private -pubout -out default.publicopendkim-genkey -b 2048 -d example.com -s defaultDKIM-Schlüssel rotieren
Erzeugen Sie ein neues Schlüsselpaar unter einem neuen Selektor, zum Beispiel s2027.
Veröffentlichen Sie den neuen TXT-Eintrag und warten Sie, bis er überall aufgelöst wird.
Stellen Sie den Mailserver auf das Signieren mit dem neuen Selektor um.
Behalten Sie den alten Eintrag noch etwa eine Woche, bis damit signierte Mails zugestellt und geprüft wurden.
Löschen Sie dann den alten Eintrag oder veröffentlichen Sie ihn mit leerem
p=, um ihn zu widerrufen.
Advertisement
Weitere Tools zur E-Mail-Authentifizierung
DKIM ist einer von drei Einträgen, die Empfänger prüfen. Vervollständigen Sie das Set:
Einen veröffentlichten Schlüssel per Selektor abrufen und Syntax und Größe prüfen.
Einen SPF-Eintrag für Ihre Anbieter mit Live-Zählung der Lookups erstellen.
Eine DMARC-Richtlinie erstellen, die Ihre SPF- und DKIM-Ergebnisse nutzt.
Sehen, ob eine echte Nachricht DKIM, SPF und DMARC bestanden hat.