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.