DKIM record im DNS einfügen

Einen DKIM Record im DNS zu erstellen ist ganz einfach.

Zuerst erstelle ich mit openssl ein Schlüssel-Paar.

openssl genrsa -out private.key 1024
openssl rsa -in private.key -pubout -out public.key

Der public key sieht danach so aus:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEI2JbDzjyNCCxXVWqLdOD+EpS
ZPFEtHG7bmYSQaQjDHP/DQnQ3adkcOKDyEZKHrZTpLFOfd063uUTw4SlloLpziGL
PD44v0vLZI0TXjpdsvSXl0vV6i4nxBnqhvCOG3TrMIz8iF8e8cQL0dnxeaQZyRvx
sbkccjUxLKw1YomX0QIDAQAB
-----END PUBLIC KEY-----

Den Public Key müssen Sie nun manuell auf eine einzige Linie bringen.

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEI2JbDzjyNCCxXVWqLdOD+EpSZPFEtHG7bmYSQaQjDHP/DQnQ3adkcOKDyEZKHrZTpLFOfd063uUTw4SlloLpziGLPD44v0vLZI0TXjpdsvSXl0vV6i4nxBnqhvCOG3TrMIz8iF8e8cQL0dnxeaQZyRvxsbkccjUxLKw1YomX0QIDAQAB

Diese Linie wird als <public key> eingesetzt.

Next, add two txt records like

_domainkey.domain.com          IN TXT "o=!;r=postmaster@domain.com"
selector._domainkey.domain.com IN TXT "v=DKIM1;k=rsa;p=<public key>"

Die Parameter bedeuten:

  • o=~ Dieser Server verschlüsselt signiert einige Mails
  • o=- Alle Mails sind signiert, aber unsignierte Mails sollten trotzdem akzeptiert werden
  • o=! Alle Mails sind signiert. Akzeptiere keine nicht signierten Mails
  • t=y Wir testen immer noch
  • v=DKIM1 Wir verwenden die Version 1
  • k=rsa Es ist ein RSA key
  • r=<x@xx.xx> Probleme und Missbrauch werden an diese Mailadresse gemeldet
  • p=<public key> Dies ist mein öffentlicher Schlüssel

TXT Records im DNS können Strings mit einer Länge von 255 Bytes verarbeiten. Verwendet man Schlüssel, die länger sind als 1024 bits, dann überschreitet man diese Limite und muss den TXT Record entsprechend anpassen und die Strings splitten.