Spring naar de hoofdinhoud

Een DKIM record instellen

Wat is DKIM?

DKIM staat voor Domain Keys Identified Mail. DKIM wordt op zowel het niveau van een DNS record op je domeinnaam geregistreerd alsook op je e-mailserver. DKIM 'ondertekent' digitaal iedere e-mail wat je verzendt en stuurt die digitale handtekening mee in de 'headers' van iedere verzonden e-mail. De ontvanger controleert of de digitale handtekening in de e-mail overeenkomt met het publieke DNS record. Komt de digitale handtekening overeen? Dan is het zeker dat de e-mail en de bijlagen niet gewijzigd zijn.

Flow DKIM.

DKIM werkt op basis van een private en een public key. Op je mailserver staat een private key geconfigureerd. Wanneer je mailserver een e-mail verzend, dan wordt dat bericht automatisch ondertekend met de private key. De ontvangende e-mailserver controleert deze handtekening aan de hand van de public key wat in het DNS record staat.

In zeven stappen ziet het technische DKIM teken- en validatieproces er als volgt uit:

  1. Op je e-mailserver is een DKIM public key gegenereerd.
  2. Een eindgebruiker stuurt een e-mail.
  3. Deze e-mail komt terecht op je e-mailserver. Je e-mailserver tekent met de public key de e-mail en plaatst de handtekening in de headers van het e-mailbericht en verzend de e-mail naar de ontvanger.
  4. Het bericht komt aan op de e-mailserver van de ontvanger.
  5. De ontvangende e-mailserver vraagt de DNS records op van het domein wat achter het @-teken van het 'From' adres staat.
  6. De ontvangende e-mailserver ziet in het DNS record dat er een public DKIM key opgegeven is.
  7. Met behulp van deze public key valideert de ontvangende e-mailserver de handtekening in de headers van het e-mailbericht.

Stap 1: DKIM activeren door een private en public key te genereren

Om je berichten digitaal te ondertekenen, moet op je e-mailserver een public en private DKIM RSA keypair gegenereerd worden. Hoe je dat precies moet doen, is volledig afhankelijk van het type mailserver of de mailprovider wat je gebruikt.

Wanneer je DKIM geactiveerd hebt, dan krijg je van je mailprovider de 'public' key te zien. Deze public key heb je straks nodig om in je DNS record te configureren.

Daarnaast krijg je ook een 'selector'. Deze selector is uniek per e-mailserver. De selector van Google Workspace is bijvoorbeeld google en de selector van Plesk is default. Ook deze 'selectors' heb je straks nodig om je DNS record te configureren.

Een DKIM private/public key genereren in Google Workspace

Gebruik je Google Workspace als mailserver, dan kan je een DKIM private key genereren in het admin paneel onder 'Apps > Google Workspace > Settings for Gmail > Authenticate email'. Zodra je dat gedaan hebt, krijg je je public key te zien (deze heb je straks nodig).

Een DKIM key genereren in Google Workspace.

Een DKIM private/public key genereren in Plesk

Gebruik je het Plesk controlepaneel, dan kan je een private key generen in je 'Mail Settings'. Klik op 'How to configure external DNS' om je public key te zien.

Een DKIM key genereren in Plesk.

Stap 2: de public key in je DNS opnemen

Kopieer de public key wat je verkregen hebt bij het aanmaken van je private key. Deze key plaats je in de DNS instellingen van je domeinnaam. Dit doe je door in te loggen op het DNS beheerpaneel van je DNS provider.

  • Voeg een record van het type 'TXT' toe.
  • Afhankelijk van je domein provider, geef je als 'domeinnaam' twee zaken op: je 'selector' gevolgd door ._domainkey. Voor Google Workspace is dat bijvoorbeeld: google._domainkey.
  • Als je het record ingeeft voor een subdomein, dan noteer je hier ook het subdomein. Bijvoorbeeld voor subdomein 'voorbeeld.nexxwave-demo4.eu' zou het record zijn: google._domainkey.voorbeeld.nexxwave-demo4.eu.
  • Als TTL raden we aan om te starten met een lage waarde zodat wijzigingen wat je doet vlug opgepikt kunnen worden. Neem bijvoorbeeld een TTL van 5 minuten: 300.
  • Als TXT-record noteer je de public key wat je gekregen hebt. Afhankelijk van je domein provider, moet dit tussen "aanhalingstekens" getypt worden.

DKIM public key ingeven in je DNS.

Stap 3: validatie van je DNS record

Wanneer je TXT record online staat, controleer dan of het goed reageert op aanvragen. Dat kan vanaf je computer of via een online tool zoals deze van MXToolbox:

Geef hiervoor het volledige adres van je TXT record op, met de 'selector'. Zoals in onderstaand voorbeeld: google._domainkey.nexxwave.be.

Validatie van DKIM public key via MXToolbox.

Vanaf je computer kan je via dig eenvoudig de TXT record van je (sub)domein opvragen. Hiervoor geef je ook weer het volledig adres, met selector, op.

DKIM public key opvragen via dig.

Je kan ook een validatie van je DKIM record doen door vanaf al je e-mailservers een e-mail te sturen naar een (best extern) e-mailadres. In de headers van deze e-mail vind je terug of de DKIM validatie geslaagd al dan niet geslaagd is:

DKIM validatie in de headers van een e-mailbericht.

Wil je dieper in de headers duiken, dan zal je in je headers DKIM-Signature tegenkomen. Zie dit voorbeeld:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=docs.nexxwave.be; s=nexx; t=1658239666; bh=RbX1G9lD6lVhuqtj1C/P7MzkydOmr82ZR1IFtfu+pP8=; h=Date:Subject:From:To:From; b=hHW8OWA8zh/pRKZ+smWDxmlLVQ21tdEb0rumXOhxyGig94uyGXGMIeTOjvQFcmw0H
	 VXH+m/L/pieUSroXb4xDD6DhTWkSuhes/FTDM951fmVcwu3ViaGGD0AUDXhHxcMpUP
	 bJzI+vy7AEwN0q03pCoFsR6lyfhydfq/grGORRCqb+LgAKRNpaX8tyg5728XhRmMmM
	 ybgElQ5rUUo4VaTSUF2F1wRd3R+EC9iRKv4Odg/dim/RifTxql2r0J24Z9D+mYpdHU
	 WmxbdVbZfupQC5KAsGwJhqTXZvqUyLV3IrwSDAfk9S9OLRCwHBrDx1WUHyuLREwJ0Q
	 2yd5/eZ82Mbdg==

Hier vind je:

  • d=docs.nexxwave.be = het domein van de afzender. De ontvangende e-mailserver gaat in de DNS records van dit domein de public DKIM key opzoeken.
  • s=nexx = de selector wat in de e-mailserver geconfigureerd staat. Dus de ontvangende e-mailserver weet zo dat de public DKIM key te vinden is op adres nexx._domainkey.docs.nexxwave.be
  • Vervolgens zie je de digitale handtekening achter b=.