Comment configurer DKIM avec Postfix en 2026 (OpenDKIM et Rspamd)

parNajeeb VV,

Dernière mise à jour :
13 13 min de lecture
Comment configurer DKIM avec Postfix en 2026 (OpenDKIM et Rspamd)

Points clés à retenir

  • Postfix ne dispose pas de module de signature DKIM intégré ; il faut donc y associer un module « milter » (OpenDKIM ou Rspamd) qui signe chaque message sortant avant qu'il ne quitte le serveur.
  • OpenDKIM fonctionne toujours pour la signature, mais l'activité en amont a été sporadique ces dernières années. Optez pour cette solution dans le cas de configurations simples à domaine unique, pour lesquelles vous pouvez vérifier la prise en charge par votre distribution actuelle, et privilégiez Rspamd pour les configurations multi-domaines ou la messagerie en production.
  • Utilisez des clés RSA de 2048 bits au minimum ; les clés de 1024 bits sont déconseillées par la norme RFC 8301. Privilégiez Ed25519 si votre MTA/milter et votre fournisseur DNS le prennent en charge.
  • La plupart des échecs liés à l'absence de signature sont dus à un problème de socket ou de droits d'accès. Si votre Postfix exécute smtpd dans un environnement chroot (ce qui est courant dans certains paquets Debian/Ubuntu), placez la socket OpenDKIM dans le répertoire de spool de Postfix et assurez-vous que l'utilisateur « postfix » puisse y accéder (par exemple, en ajoutant « postfix » au groupe « opendkim »).
  • La conformité à la norme DKIM ne suffit pas. La norme DMARC exige une cohérence : votre domaine de signature doit donc correspondre à l'en-tête « From: », et les clés doivent être renouvelées au moins une fois par an.

Dans Postfix, le DKIM correspond à la signature cryptographique que vous ajoutez aux e-mails sortants afin que les serveurs destinataires puissent vérifier que le message provient bien de votre domaine et qu’il n’a pas été altéré pendant son acheminement. 

Postfix ne le fait pas de lui-même. Il faut lui associer un « milter » (un filtre de messagerie) qui signe chaque message au moment où celui-ci quitte votre serveur.

Ce guide vous accompagne tout au long du processus de configuration de DKIM sous Postfix en 2026 : du choix de votre « milter » à la génération de clés modernes, en passant par l'intégration dans Postfix et la rotation des clés avant qu'elles ne deviennent un risque.

OpenDKIM ou Rspamd : lequel choisir en 2026 ?

Avant de pouvoir signer un message, vous devez choisir le module de filtrage (milter) chargé de la signature. OpenDKIM et Rspamd sont les deux options les plus courantes pour la gestion de DKIM avec Postfix en 2026.

Ces deux solutions permettront d'authentifier correctement vos e-mails sortants. Elles diffèrent toutefois par les exigences qu'elles vous imposent pour fonctionner et par le degré de fiabilité sur lequel vous pourrez compter à l'avenir.

CritèresOpenDKIMRspamd
État de la maintenanceL'activité en amont est faible ; dernière version stable : 2.10.3 (mai 2015) ; la branche 2.11.0 est en version bêta. Debian testing a prévu sa suppression automatique (juin 2026) en raison d'un bogue lié à la dépendance libmemcached.Développement actif, mises à jour fréquentes
Ce qu'il faitSignature/vérification DKIM uniquementSignature DKIM et filtrage complet des spams
Complexité de la mise en placeSimple, à usage uniqueDavantage d'éléments mobiles à l'avant
Intégration de PostfixMilter (prise)Milter (socket proxy)
Interface utilisateur WebAucunTableau de bord intégré

OpenDKIM signe correctement les e-mails, et des millions de serveurs en dépendent actuellement. Cependant, son utilisation comporte un risque lié à la maintenance qu'il convient d'évaluer avant de s'appuyer sur cette solution. 

La dernière version stable en amont était la 2.10.3, publiée le 12 mai 2015. La branche 2.11.0, qui ajoutait la prise en charge d’Ed25519, n’est jamais sortie de la phase bêta. OpenDKIM continue de signer les e-mails de manière fiable et reste intégré aux principales distributions, mais Debian testing a marqué la version 2.11.0~beta2 pour suppression automatique (actuellement prévue en juin 2026) en raison d’un problème de dépendance transitive avec libmemcached, et non pas en raison d’un abandon en amont en soi. Vérifiez l’état actuel du paquet dans votre distribution avant de vous engager à utiliser OpenDKIM en production à long terme.

Vous pouvez l'utiliser dès aujourd'hui, mais vous vous appuyez sur un logiciel dont les développeurs en amont n'ont pas publié de version stable depuis une décennie, et c'est là le risque à long terme qu'il faut prendre en compte. 

Rspamd est l'alternative activement maintenue. Il signe les messages via DKIM et filtre le spam à partir d'un seul « milter » ; vous n'avez donc besoin que d'un seul service au lieu de deux si vous souhaitez également bénéficier d'une protection des messages entrants. Postfix est le MTA le plus couramment associé à Rspamd, et des solutions telles que Mailcow s'appuient sur lui pour la signature DKIM plutôt que sur OpenDKIM. 

Voici comment faire votre choix :

  • Choisissez OpenDKIM si vous gérez un seul domaine et que vous souhaitez une configuration aussi simple que possible avec la signature DKIM, sans rien d'autre.
  • Choisissez Rspamd si vous gérez plusieurs domaines, envoyez des e-mails de production ou utilisez une pile logicielle telle que Mailcow ou iRedMail.

Quoi qu’il en soit, les deux méthodes sont décrites ci-dessous. Passez directement à celle que vous avez choisie.

À lire également : Qu'est-ce que le DKIM ?

Conditions préalables avant de commencer

Avant de générer une clé ou de modifier un fichier de configuration, assurez-vous que ces quatre éléments sont déjà en place 

  • Une installation Postfix opérationnelle qui envoie déjà des e-mails : DKIM signe les e-mails envoyés par votre serveur ; celui-ci doit donc d'abord envoyer correctement ses e-mails. Si Postfix n'est pas encore configuré, procédez à cette configuration avant de continuer.
  • Accès au DNS pour votre domaine : Vos enregistrements A et MX devraient déjà être publiés, et vous devrez pouvoir ajouter un enregistrement TXT, car c'est là que sera stockée votre clé publique.
  • Accès root ou sudo sur le serveur de messagerie : Vous devrez modifier des fichiers de configuration système et redémarrer des services.
  • Un fournisseur DNS prenant en charge les enregistrements TXT longs : Une clé de 2 048 bits dépasse la limite de 255 caractères imposée pour une seule chaîne TXT ; certains fournisseurs vous demandent donc de la diviser en deux chaînes entre guillemets. Vérifiez que le vôtre prend en charge cette fonctionnalité avant de générer la clé.

Commencez par choisir la taille de votre clé : RSA 2048 bits, ou Ed25519 si votre MTA/milter et votre fournisseur DNS le prennent en charge, mais jamais 1024 bits. La RFC 8301 interdit l'utilisation de SHA-1 (rsa-sha1 NE DOIT PAS être utilisé) et recommande le RSA à 2048 bits comme niveau minimum « SHOULD », tandis que le 1024 bits reste le seuil minimal du protocole (il DOIT être utilisé au minimum). Des clés faibles donnent aux destinataires une raison de se méfier de vos e-mails.

Comment configurer DKIM avec Postfix et OpenDKIM

OpenDKIM est la méthode la plus simple pour ajouter la signature DKIM à un serveur Postfix à domaine unique : un seul démon, une seule clé, sans composant supplémentaire. Ces cinq étapes vous permettront de passer d'un serveur envoyant des e-mails non signés à un serveur signant chaque message sortant à l'aide d'une clé que les destinataires peuvent vérifier. Chaque étape s'appuie sur la précédente ; veillez donc à les suivre dans l'ordre. 

Étape 1 : Installer OpenDKIM

Installez deux paquets : opendkim (le démon de signature proprement dit) et opendkim-tools (les utilitaires qui vous permettront de générer des clés).

Ubuntu 24.04 / Debian 12 :

bash

sudo apt update

sudo apt installer opendkim opendkim-tools

RHEL / Rocky 9 (OpenDKIM est disponible dans le dépôt EPEL) :

bash

sudo dnf installer epel-release

sudo dnf installer opendkim opendkim-tools

Activez le service pour qu'il se lance au démarrage :

bash

sudo systemctl enable opendkim

Remarque : sur certaines distributions, le nom du service ou l'utilisateur/groupe peut varier (par exemple, « opendkim » au lieu de « opendkim-daemon », ou « opendkim:opendkim » au lieu de « opendkim:postfix »). Consultez la documentation de votre paquet ou l'unité systemd si les commandes ne correspondent pas.

Étape 2 : Générer votre paire de clés DKIM

Créez un répertoire destiné à contenir les clés du domaine, puis générez une paire de clés de 2048 bits :

bash

sudo mkdir -p /etc/opendkim/keys/example.com

sudo opendkim-genkey -b 2048 -d example.com -s selector2026 \

  -D /etc/opendkim/keys/example.com/

Fonction de chaque indicateur :

DrapeauSignification
-b 2048Taille de la clé en bits - RSA 2048 bits
-d example.comLe domaine pour lequel vous signez
-s selector2026Le nom du sélecteur (voir la remarque ci-dessous)
-D /etc/opendkim/keys/example.com/Où enregistrer les fichiers de sortie ?

Sur le sélecteur : le valeur est le nom qui apparaîtra dans votre enregistrement DNS. Utilisez un nom basé sur l'année, tel que selector2026. Cela ne coûte rien pour l'instant et facilitera grandement la rotation plus tard ; l'année prochaine, vous générerez selector2027 et l'ancien enregistrement restera actif pendant la transition.

Cette commande génère deux fichiers :

FichierDe quoi s'agit-il ?Règle
selector2026.privateVotre clé privée de signatureNe le partagez jamais ; veillez à ce qu'il ne soit lisible que par OpenDKIM
selector2026.txtLa clé publique, au format DNSVoici ce que vous publiez à l'étape 5

Maintenant, réglez les droits de propriété. Des droits d'accès incorrects constituent la cause la plus fréquente d'échec de la signature par OpenDKIM ; ne négligez donc pas cette étape :

bash

sudo chown -R opendkim:opendkim /etc/opendkim/keys

sudo chmod 600 /etc/opendkim/keys/example.com/selector2026.private

Modifiez le nom de l'utilisateur ou du groupe si votre distribution utilise des noms différents (par exemple, opendkim:postfix). Consultez la documentation de votre paquet ou l'unité systemd pour vous en assurer.

Étape 3 : Configurer OpenDKIM

OpenDKIM lit ses paramètres principaux dans le fichier /etc/opendkim.conf, puis utilise trois petits fichiers de référence pour déterminer ce qu'il faut signer et avec quelle clé. Définissez d'abord les directives principales :

Syslogoui
UMask2
Modes
Canonisationdétendu/détendu
Priselocal:/var/spool/postfix/opendkim/opendkim.sock
PidFile/run/opendkim/opendkim.pid
En-têtes de sursignatureDe
Table des clés/etc/opendkim/key.table
Tableau des signaturesrefile:/etc/opendkim/signing.table
Liste d'exclusion externe/etc/opendkim/trusted.hosts
Hôtes internes/etc/opendkim/trusted.hosts

Rôle des directives importantes :

DirectiveCe qu'il contrôle
ModesSignature uniquement. Utilisez « sv » si vous souhaitez également qu’OpenDKIM vérifie les e-mails entrants.
Canonicalisation assouplie/assouplieTolère les modifications mineures des espaces lors du transit, ce qui préserve la validité des signatures. Remarque : la canonicalisation n'influe pas sur l'alignement DMARC. L'alignement DMARC dépend de la correspondance entre le domaine « d= » de la signature DKIM et le domaine de l'en-tête « From: », et non du paramètre de canonicalisation.
PriseEmplacement où OpenDKIM écoute les requêtes de Postfix. Ce chemin d'accès doit correspondre à celui que vous définirez ultérieurement dans Postfix.
En-têtes de sursignature provenant deIl signe l'en-tête « From » afin qu'un pirate ne puisse pas en ajouter un deuxième ; il s'agit d'une mesure anti-usurpation modeste mais efficace.
Tableau des clés / Tableau des signaturesLes deux fichiers de correspondance qui associent les domaines aux sélecteurs et aux clés (ci-dessous).

Créez ensuite les trois fichiers de référence. Chacun d'entre eux a une fonction bien précise :

FichierEmploiExemple de ligne
tableau des signaturesAssocie un expéditeur à un sélecteur*@example.com selector2026._domainkey.example.com
table des clésAssocie ce sélecteur à sa clé privée sur le disqueselector2026._domainkey.example.com example.com:selector2026:/etc/opendkim/keys/example.com/selector2026.private
trusted.hostsRépertorie les serveurs dont les e-mails sortants doivent être signés127.0.0.1 / localhost / ::1 / example.com

Étape 4 : Connecter OpenDKIM à Postfix

C'est là que la plupart des configurations échouent, et la cause en est presque toujours le socket. OpenDKIM crée un fichier socket pour communiquer avec Postfix. Si votre Postfix exécute smtpd dans un environnement chroot — ce qui est le comportement par défaut des paquets Debian/Ubuntu, mais pas celui de la version en amont de Postfix ni celui de RHEL/Rocky —, il est confiné dans /var/spool/postfix et ne peut pas accéder à un socket situé en dehors de ce répertoire. Les deux ne parviennent jamais à se connecter, et vos e-mails sont envoyés sans signature.

La solution consiste à placer la prise à l'intérieur répertoire de spool de Postfix et de donner au utilisateur « postfix » l'autorisation d'y accéder. Suivez ces étapes dans l'ordre :

1. Créez le répertoire « socket » dans le spool de Postfix :

bash

sudo mkdir -p /var/spool/postfix/opendkim

sudo chown opendkim:postfix /var/spool/postfix/opendkim

Modifiez le groupe si votre distribution utilise plutôt opendkim:opendkim.

2. Ajoutez le suffixe à la liste groupe groupe afin qu'il puisse lire le socket :

bash

sudo gpasswd -a postfix opendkim

3. Vérifiez le chemin d'accès au socket d'exécution correspond à celui opendkim.conf. Sous Ubuntu/Debian, configurez-le dans /etc/default/opendkim (ou dans la configuration systemd) :

  SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock"

4. Configurer Postfix pour qu'il pointe vers le milter dans /etc/postfix/main.cf:

milter_default_action = accept

   milter_protocol = 6

   smtpd_milters = local:opendkim/opendkim.sock

   non_smtpd_milters = $smtpd_milters

Voici ce que signifient ces quatre directives Postfix :

DirectiveObjectif
milter_default_action = acceptSi le serveur de messagerie est hors service, le courrier continue de circuler ; un signataire inactif ne bloque jamais votre file d'attente sans le faire savoir.
milter_protocol = 6Version du protocole Milter actuellement utilisée par OpenDKIM.
smtpd_miltersApplique le filtre aux e-mails reçus via SMTP (vos envois sortants).
non_smtpd_miltersS'applique aux e-mails non reçus via SMTP, par exemple ceux générés localement.

Le chemin d'accès au socket dans main.cf est relatif, local:opendkim/opendkim.sock, et non le chemin complet du système de fichiers, car Postfix le lit depuis l'intérieur de son environnement chroot.

Redémarrez les deux services pour que les modifications prennent effet :

bash

sudo systemctl restart opendkim

sudo systemctl restart postfix

Étape 5 : Publier l'enregistrement TXT DKIM dans le DNS

Ouvrez le fichier de clé publique que vous avez généré à l'étape 2 :

bash

sudo cat /etc/opendkim/keys/example.com/selector2026.txt

Publiez son contenu chez votre fournisseur DNS sous la forme d'un nouvel enregistrement :

ChampValeur
Nom de l'enregistrementselector2026._domainkey.example.com
TypeTXT
ValeurTout ce qui se trouve entre parenthèses (la chaîne « v=DKIM1; k=rsa; p=... »)

Comme il s'agit d'une clé de 2048 bits, sa valeur dépasse la limite de 255 caractères imposée pour une seule chaîne TXT. La plupart des fournisseurs DNS la divisent automatiquement. Si le vôtre la rejette, répartissez la clé publique sur deux chaînes entre guillemets au sein du même enregistrement que le fichier fichier .txt vous indique déjà où se situe la coupure.

Réglez la valeur TTL sur 300 secondes lors de la configuration afin que la correction d'une éventuelle erreur ne coûte pas trop cher. Une fois que vous avez vérifié que la signature fonctionne, augmentez cette valeur à 3 600.

Étape 6 : Vérifiez avant d'envoyer

La propagation des modifications DNS prend du temps, et une clé de 2048 bits mal répartie s'affichera correctement dans votre éditeur de zone, mais ne fonctionnera pas dès qu'un destinataire la lira. 

Rspamd est la solution la plus adaptée dès lors que vous gérez plus d’un domaine ou que vous exploitez un service de messagerie en production. Il signe les messages via DKIM et filtre le spam à partir d’un seul milter, ce qui vous permet de ne gérer qu’un seul service au lieu de deux.

De plus, comme il recherche automatiquement les clés par domaine, l'ajout d'un nouveau domaine ne nécessite qu'une seule ligne de modification, plutôt qu'une nouvelle configuration. Voici la procédure complète sous Postfix, en cinq étapes.

Étape 1 : Installer Rspamd

La version disponible dans les dépôts de base de votre distribution est généralement obsolète ; installez-la donc à partir du dépôt stable officiel de Rspamd.

bash

sudo apt install -y lsb-release wget gpg

sudo mkdir -p /etc/apt/keyrings

wget -O- https://rspamd.com/apt-stable/gpg.key | \

  gpg –dearmor | sudo tee /etc/apt/keyrings/rspamd.gpg > /dev/null

echo « deb [signed-by=/etc/apt/keyrings/rspamd.gpg] \

  http://rspamd.com/apt-stable/ $(lsb_release -cs) « main » | \

  sudo tee /etc/apt/sources.list.d/rspamd.list

sudo apt update && sudo apt install rspamd

Activer son démarrage au démarrage du système :

bash

sudo systemctl enable rspamd

Consultez toujours le site rspamd.com pour obtenir les dernières instructions d'installation, car l'URL du dépôt et les étapes relatives à la clé GPG peuvent changer de temps à autre.

Étape 2 : Générer votre clé DKIM

Rspamd intègre son propre générateur de clés, rspamadm dkim_keygen , sans qu'il soit nécessaire d'installer un paquet d'outils séparé. Il enregistre la clé privée dans un fichier et affiche la clé publique (votre enregistrement DNS) à l'écran, que vous pouvez copier dans un fichier fichier .pub .

bash

sudo mkdir -p /var/lib/rspamd/dkim

sudo rspamadm dkim_keygen -s selector2026 -b 2048 -d example.com \

  -k /var/lib/rspamd/dkim/example.com.selector2026.key | \

  sudo tee /var/lib/rspamd/dkim/example.com.selector2026.pub

sudo chown -R _rspamd:_rspamd /var/lib/rspamd/dkim

Modifiez l’utilisateur/le groupe si votre distribution utilise rspamd:rspamd au lieu de _rspamd:_rspamd. Vérifiez l’unité systemd de votre paquet pour vous en assurer.
Les options correspondent à celles d’OpenDKIM : -s sélecteur, -b 2048 taille de la clé, -d domaine, -k fichier de sortie de la clé privée. Vous obtenez ainsi deux fichiers :

FichierDe quoi s'agit-il ?
exemple.com.selector2026.keyClé de signature privée utilisée par Rspamd. Veillez à ce qu'elle reste la propriété de l'utilisateur _rspamd.
exemple.com.selector2026.pubLa clé publique, au format DNS, que vous publiez à l'étape 5

Étape 3 : Activer la signature DKIM

Rspamd gère le protocole DKIM via son module module dkim_signing . Activez-le et indiquez-lui l'emplacement de vos clés dans /etc/rspamd/local.d/dkim_signing.conf

selector = « selector2026 » ;

path = « /var/lib/rspamd/dkim/$domain.$selector.key » ;

allow_username_mismatch = true;

use_domain = « header » ;

Fonction de chaque paramètre :

CadreCe qu'il contrôle
sélecteurLe nom du sélecteur doit correspondre au nom de votre fichier de clé et à votre enregistrement DNS.
cheminEmplacement où Rspamd trouve la clé privée ; les variables $domain et $selector sont renseignées automatiquement
autoriser_les_noms_d'utilisateur_non-correspondantsS'affiche même lorsque le nom d'utilisateur authentifié ne correspond pas au domaine « De »
use_domain = "header"Récupère le domaine de signature à partir de l'en-tête « From » du message

Ce ligne est ce qui fait la force de Rspamd pour la gestion de plusieurs domaines. En effet, il résout $domain et $selector par nom de fichier, l'ajout d'un nouveau domaine se résume à placer sa clé dans le même dossier, sans nécessiter de nouveau bloc de configuration ni de deuxième démon.

Étape 4 : Connecter Rspamd à Postfix

Configurer Postfix pour utiliser le filtre milter de Rspamd dans /etc/postfix/main.cf. Les directives sont identiques à celles de la configuration OpenDKIM, seul le socket change :

milter_default_action = accept

milter_protocol = 6

smtpd_milters = inet:localhost:11332

non_smtpd_milters = $smtpd_milters

Rspamd écoute sur son proxy worker au port TCP 11332 par défaut. Comme il s’agit d’un socket réseau, vous évitez le problème de droits d’accès au socket chroot qui pose problème à OpenDKIM. La seule ligne qui diffère entre les deux milters est la suivante :

MilterLigne « Socket » dans le fichier main.cf
OpenDKIMsmtpd_milters = local:opendkim/opendkim.sock
Rspamdsmtpd_milters = inet:localhost:11332

Étape 5 : Publier l'enregistrement DNS

Ouvrez la clé publique et publiez-la exactement comme indiqué à l'étape 5 d'OpenDKIM, en respectant le même format de nom d'enregistrement, TXT et la règle de fractionnement de 255 caractères pour la clé de 2048 bits :

bash

sudo cat /var/lib/rspamd/dkim/example.com.selector2026.pub

Si vous le souhaitez, vous pouvez activer le tableau de bord Web en définissant un mot de passe dans /etc/rspamd/local.d/worker-controller.inc 

Cela vous permet de suivre en temps réel l'activité liée à la signature et au spam. Redémarrez ensuite les deux services :

bash

sudo systemctl restart rspamd postfix

Vérifiez l'enregistrement publié à l'aide d'un outil de vérification DKIM avant de vous y fier, comme vous le feriez après la configuration d'OpenDKIM.

Rspamd remplace à la fois OpenDKIM et SpamAssassin. Si vous utilisiez un filtre anti-spam distinct, vous pouvez désormais le désactiver afin de réduire le nombre de services, de simplifier la configuration et de centraliser la gestion de la signature et du filtrage.

Configuration de DKIM avec Postfix pour plusieurs domaines

Il est courant de gérer plusieurs domaines à partir d'un seul serveur Postfix, mais DKIM ne fait pas de compromis à ce sujet. Chaque domaine à partir duquel vous envoyez des e-mails doit disposer de sa propre paire de clés et de son propre enregistrement DNS, car chacun est authentifié indépendamment ; il n’existe donc pas de clé partagée valable pour tous. La manière dont vous gérez la scalabilité dépend du milter que vous avez choisi.

Avec OpenDKIM, vous étendez les tables que vous avez déjà créées : Générez une clé pour chaque nouveau domaine, puis ajoutez une ligne correspondante dans chaque fichier de recherche.

Dans signing.table:

*@example.com selector2026._domainkey.example.com

*@example.net selector2026._domainkey.example.net

Dans key.table:

selector2026._domainkey.example.com example.com:selector2026:/etc/opendkim/keys/example.com/selector2026.private

selector2026._domainkey.example.net example.net:selector2026:/etc/opendkim/keys/example.net/selector2026.private

Chaque nouveau domaine correspond à une clé supplémentaire et à deux lignes supplémentaires : c'est un travail manuel, mais prévisible.

Avec Rspamd, tout est déjà prêt : Étant donné que le paramètre utilise le variable , Rspamd trouve automatiquement la clé de chaque domaine en fonction du nom de fichier. Placez example.net.selector2026.key dans le même répertoire et il signera également ce domaine sans qu’aucune modification de configuration ne soit nécessaire. Si vous souhaitez un contrôle plus strict, vous pouvez toujours ajouter des blocs par domaine dans le fichier dkim_signing.conf.

Deux habitudes permettent de gérer efficacement la signature multi-domaines :

  1. Utilisez le même sélecteur sur tous les domaines, selector2026 partout, afin que la rotation reste un processus unique plutôt que plusieurs. 
  2. Publiez un enregistrement DNS distinct pour chaque domaine : si vous en oubliez un, les e-mails de ce domaine seront signés localement, mais la vérification échouera chez le destinataire.

Comment tester et vérifier la configuration DKIM de Postfix

Signer un e-mail et vérifier que la signature a bien été appliquée sont deux choses différentes. Du côté de l'expéditeur, tout peut sembler en ordre, alors que le destinataire rejette discrètement votre signature, et vous ne vous en rendriez compte qu'au moment où la livraison échouerait. 

Ces cinq vérifications permettent de s'assurer que le protocole DKIM fonctionne correctement, en partant de vos propres journaux pour aller jusqu'à un destinataire réel. Veuillez suivre l'ordre indiqué ci-dessous :

Vérification n° 1 : commencez par consulter le journal des e-mails

Le journal des e-mails est le moyen de confirmation le plus rapide, et il est local. Surveillez le journal, envoyez un message test et repérez l'entrée de signature :

bash

  sudo tail -f /var/log/mail.log

Sous RHEL/Rocky, le fichier se trouve à l'emplacement /var/log/maillog. Vous devez rechercher une ligne indiquant que le message a été signé avec votre sélecteur. Si elle est présente, cela signifie que votre milter fonctionne correctement.

Vérification n° 2 : Vérification de la validité de la clé via le DNS (OpenDKIM)

La validation confirme que la clé privée stockée sur le disque correspond à la clé publique que vous avez publiée :

bash

  opendkim-testkey -d example.com -s selector2026 -vvv

clé OK indique que les deux moitiés correspondent. Tout autre résultat indique une faute de frappe dans le DNS ou une clé non conforme, ce qui doit être corrigé avant de poursuivre.

Vérification n° 3 : envoyer un test réel

C'est la seule vérification qui prouve qu'un destinataire accepte votre signature. Envoyez un e-mail à un compte Gmail, ouvrez le message, puis sélectionnez « Afficher l'original ». Recherchez DKIM : « PASS » avec votre domaine, ce qui signifie que le serveur destinataire confirme que votre signature a été validée.

Vérification n° 4 : Exécuter des outils de vérification externes

Un outil de vérification DKIM récupère et analyse votre enregistrement publié comme le ferait un serveur destinataire, afin de confirmer que la clé est valide et complète.

Essayez le vérificateur DKIM gratuit de PowerDMARC, puis envoyez un message à mail-tester.com pour obtenir un score de délivrabilité plus complet qui prend en compte le DKIM ainsi que SPF, le DMARC et les signaux de spam. 

Point à vérifier n° 5 : attention au piège « DKIM validé, mais DMARC rejeté »

Votre signature peut être validée sans problème, mais DMARC peut tout de même échouer, car DMARC nécessite un alignement : le domaine indiqué dans votre en-tête DKIM d= doit correspondre au domaine figurant dans l'en-tête « From: » visible. 

Se connecter en tant que mail.example.com lors de l'envoi, en indiquant comme expéditeur example.com : l'alignement « relaxed » vous permettra de passer le contrôle, mais pas l'alignement « strict ». Si DMARC échoue malgré un DKIM validé, vérifiez que votre table de signature correspond bien au bon domaine.

Vérification n° 6 : Vérifier les trois éléments en une seule fois

Une vérification DKIM réussie permet de confirmer qu’une partie du processus d’authentification fonctionne, mais votre capacité de livraison et votre protection contre l’usurpation d’identité dépendent de DKIM, SPF et DMARC fonctionnent de concert. 

L'outil gratuit de PowerDMARC Domain Analyzer de PowerDMARC analyse ces trois éléments simultanément et attribue une note comprise entre A et F. Vous savez ainsi en un seul passage si votre domaine est réellement protégé de bout en bout ou s’il n’est que partiellement couvert. 

Lorsque vous rencontrez des problèmes tels que le cas où « DKIM passe mais DMARC échoue », l'outil gratuit Email Header Analyzer met le DKIM et le résultat de l’alignement côte à côte, ce qui vous permet d’identifier précisément la divergence en quelques secondes au lieu de devoir scruter les en-têtes bruts. 

Rotation des clés DKIM dans Postfix

Une clé privée qui reste inchangée sur un serveur pendant des années est une clé dont le risque de divulgation ne cesse d'augmenter. Si elle venait à être divulguée, un pirate pourrait signer des e-mails au nom de votre domaine jusqu'à ce que vous vous en rendiez compte.

En effectuant la rotation selon un calendrier défini, au moins une fois par an, on limite la durée de cette fenêtre. Le sélecteur annuel permet d'effectuer la transition en douceur.

Le processus de rotation :

  1. Générer une nouvelle clé avec un nouveau sélecteur – selector2027.
  2. Publiez la nouvelle clé publique sous la forme d'un nouvel enregistrement TXT DNS, et conservez l'ancien enregistrement tel quel.
  3. Mettez à jour votre configuration pour signer avec le nouveau sélecteur.
  4. Rechargez le milter et attendez que le TTL DNS se propage.
  5. Conservez l'ancienne entrée active pendant au moins la durée de validité (TTL) précédente plus 24 à 48 heures (généralement 48 à 72 heures au total), en fonction de votre TTL et du volume de messages en transit. Les messages déjà en transit, signés avec l'ancienne clé, doivent encore être vérifiés.
  6. Supprimez l'ancien sélecteur et supprimez son enregistrement DNS.

Le chevauchement entre les étapes 5 et 6 est la partie qu’il ne faut surtout pas précipiter. Si vous récupérez l’ancien enregistrement trop tôt, tout message en cours de vérification par rapport à celui-ci échouera à la vérification, ce qui correspond exactement au type d’échec d’authentification silencieux que le protocole DKIM est censé empêcher.

Ni OpenDKIM ni Rspamd n’automatisent la génération des clés, la publication DNS ou la gestion des périodes de chevauchement. Pour un seul domaine, cela correspond à un rappel annuel. Mais dès qu’on en compte cinq ou plus, cela devient une tâche récurrente qu’il est facile de négliger, et une rotation qui, sans qu’on s’en rende compte, n’a jamais lieu constitue une lacune de conformité que vous ne remarquerez pas tant que quelqu’un ne vous demandera pas d’en apporter la preuve.

Erreurs DKIM courantes avec Postfix et comment les résoudre

Les problèmes liés à DKIM sur Postfix sont souvent dus à quelques causes prévisibles, principalement les droits d'accès aux sockets, les chemins d'accès aux clés et l'alignement des domaines. Le tableau ci-dessous met en correspondance le symptôme que vous rencontrez avec sa cause la plus probable et la solution, afin que vous puissiez passer directement à celui qui vous concerne. 

ErreurCause probableFixer
Aucune signature DKIM dans les en-têtesLe Milter n'est pas connecté ou le connecteur n'est pas compatibleVérifiez que le chemin d'accès au socket correspond bien dans les fichiers opendkim.conf et main.cf ; assurez-vous que l'utilisateur postfix fait partie du groupe opendkim.
Connexion au service Milter... Connexion refuséeLe démon OpenDKIM ne fonctionne passystemctl start opendkim ; vérifiez que le fichier de socket existe bien dans le répertoire spool
opendkim : échec de la récupération de la cléChemin d'accès incorrect dans la table de clés ou droits d'accès inappropriésVérifiez le chemin d'accès du fichier .private dans key.table ; exécutez la commande chown opendkim:opendkim sur la clé
DKIM est validé, mais DMARC échoueDécalage d'alignementLe domaine de signature (d=) doit correspondre au domaine de l'en-tête « From : » ; utilisez un alignement souple
Clé de 2048 bits rejetée par le DNSLimite de 255 caractères pour les messages TXT imposée par le fournisseurRépartir la clé publique entre deux chaînes de caractères entre guillemets dans le même enregistrement TXT

Quand faut-il abandonner la configuration manuelle de DKIM dans Postfix ?

Pour un seul domaine, la gestion autonome de DKIM sur Postfix est la solution idéale. Il suffit de la configurer une seule fois pour qu’elle fonctionne, mais à mesure que votre volume d’envoi augmente, les tâches manuelles qu’elle implique deviennent une source de risque plutôt qu’un moyen de contrôle. 

Voici quelques signes qui indiquent que vous en êtes arrivé là :

  • Vous souscrivez à trois domaines ou plus.
  • Les e-mails proviennent de plusieurs sources : un fournisseur de services de messagerie (ESP), les e-mails transactionnels, votre application… Chacune de ces sources nécessite ses propres clés.
  • Vous avez une date limite à respecter en matière de conformité et vous ne pouvez pas vous permettre de manquer une rotation.
  • Une seule personne détient l'ensemble des connaissances relatives au protocole DKIM, et si elle venait à quitter l'entreprise, ces connaissances disparaîtraient avec elle.

Si vous êtes confronté à ces difficultés, la gestion DKIM hébergée comble ces lacunes en supprimant entièrement les étapes manuelles. Voici en quoi la gestion manuelle de DKIM diffère de la gestion hébergée de DKIM :

TâcheManuel (OpenDKIM / Rspamd)DKIM hébergé
Rotation des clésÀ la main, à chaque cycle : générer, publier, superposer, retirerAutomatique, aucune modification du DNS par cycle
Plusieurs domainesClé, enregistrement et configuration distincts par domaineGéré de manière centralisée
Taille de la clé2048 bits (ou Ed25519)Jusqu'à 4 096 bits
Gestion des sélecteursSuivi manuellementDétection automatique pour les principaux fournisseurs de services Internet
Maintenance du DNSMis à jour à chaque rotationUn seul enregistrement CNAME, publié une seule fois

Si vous gérez le protocole DKIM sur plusieurs domaines ou si vous avez besoin d’une rotation conforme aux normes de sécurité sur laquelle vous pouvez compter, la solution DKIM hébergée de PowerDMARC vous libère des tâches manuelles et élimine les risques qui y sont associés. 

Commencez votre essai gratuit de 15 jours

Foire aux questions

Qu'est-ce que le DKIM de Postfix ?

Postfix DKIM désigne la signature cryptographique des e-mails sortants sur un serveur Postfix, qui permet aux destinataires de vérifier que le message provient bien de votre domaine et n'a pas été altéré. Postfix ne disposant pas de module de signature intégré, il transmet chaque message à un « milter » (OpenDKIM ou Rspamd) chargé d'ajouter la signature.

Qu'est-ce qu'OpenDKIM ?

OpenDKIM est un « milter » autonome qui se charge exclusivement de la signature et de la vérification DKIM pour Postfix et d’autres MTA, et rien d’autre. Simple et largement déployé, il n’a toutefois pas connu de version stable depuis 2021 ; il convient donc d’évaluer ce risque lié à la maintenance pour les déploiements à long terme.

Qu'est-ce que Rspamd ?

Rspamd est un système de filtrage anti-spam activement mis à jour, dont le module de signature DKIM permet de signer les e-mails Postfix. Comme il gère à la fois le filtrage et la signature au sein d’un seul milter, il remplace à la fois OpenDKIM et SpamAssassin, ce qui en fait le choix le plus judicieux pour 2026 en cas de serveurs multi-domaines ou de production.

Qu'est-ce que Postfix ?

Postfix est un agent de transfert de courrier (MTA) open source très répandu qui achemine et distribue les e-mails sur des serveurs de type Unix. Il envoie et reçoit des e-mails, mais ne signe pas lui-même les messages avec DKIM ; cela nécessite un module milter distinct, tel qu’OpenDKIM ou Rspamd.

Dois-je utiliser OpenDKIM ou Rspamd avec Postfix en 2026 ?

Pour les configurations simples à domaine unique, OpenDKIM fonctionne toujours très bien. Pour les serveurs multi-domaines ou de production, Rspamd est le meilleur choix. Il bénéficie d’une maintenance active et combine la signature DKIM et le filtrage anti-spam au sein d’un seul milter.

Comment puis-je vérifier que mes e-mails sortants sont signés par DKIM ?

Vérifier /var/log/mail.log pour vérifier les entrées de signature, puis exécutez opendkim-testkey, envoyez un e-mail de test à Gmail et vérifiez dans les en-têtes bruts la présence de DKIM : PASS, ou soumettez votre domaine à un vérificateur DKIM gratuit.

CTA