Comment configurer DKIM avec Postfix en 2026 (OpenDKIM et Rspamd)
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.
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ères | OpenDKIM | Rspamd |
|---|---|---|
| État de la maintenance | L'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 fait | Signature/vérification DKIM uniquement | Signature DKIM et filtrage complet des spams |
| Complexité de la mise en place | Simple, à usage unique | Davantage d'éléments mobiles à l'avant |
| Intégration de Postfix | Milter (prise) | Milter (socket proxy) |
| Interface utilisateur Web | Aucun | Tableau 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 :
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 ?
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
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.
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.
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.
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 :
| Drapeau | Signification |
|---|---|
| -b 2048 | Taille de la clé en bits - RSA 2048 bits |
| -d example.com | Le domaine pour lequel vous signez |
| -s selector2026 | Le 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 :
| Fichier | De quoi s'agit-il ? | Règle |
|---|---|---|
| selector2026.private | Votre clé privée de signature | Ne le partagez jamais ; veillez à ce qu'il ne soit lisible que par OpenDKIM |
| selector2026.txt | La clé publique, au format DNS | Voici 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.
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 :
| Syslog | oui |
|---|---|
| UMask | 2 |
| Mode | s |
| Canonisation | détendu/détendu |
| Prise | local:/var/spool/postfix/opendkim/opendkim.sock |
| PidFile | /run/opendkim/opendkim.pid |
| En-têtes de sursignature | De |
| Table des clés | /etc/opendkim/key.table |
| Tableau des signatures | refile:/etc/opendkim/signing.table |
| Liste d'exclusion externe | /etc/opendkim/trusted.hosts |
| Hôtes internes | /etc/opendkim/trusted.hosts |
Rôle des directives importantes :
| Directive | Ce qu'il contrôle |
|---|---|
| Modes | Signature uniquement. Utilisez « sv » si vous souhaitez également qu’OpenDKIM vérifie les e-mails entrants. |
| Canonicalisation assouplie/assouplie | Tolè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. |
| Prise | Emplacement 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 de | Il 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 signatures | Les 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 :
| Fichier | Emploi | Exemple de ligne |
|---|---|---|
| tableau des signatures | Associe un expéditeur à un sélecteur | *@example.com selector2026._domainkey.example.com |
| table des clés | Associe ce sélecteur à sa clé privée sur le disque | selector2026._domainkey.example.com example.com:selector2026:/etc/opendkim/keys/example.com/selector2026.private |
| trusted.hosts | Répertorie les serveurs dont les e-mails sortants doivent être signés | 127.0.0.1 / localhost / ::1 / example.com |
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 :
| Directive | Objectif |
|---|---|
| milter_default_action = accept | Si 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 = 6 | Version du protocole Milter actuellement utilisée par OpenDKIM. |
| smtpd_milters | Applique le filtre aux e-mails reçus via SMTP (vos envois sortants). |
| non_smtpd_milters | S'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
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 :
| Champ | Valeur |
|---|---|
| Nom de l'enregistrement | selector2026._domainkey.example.com |
| Type | TXT |
| Valeur | Tout 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.
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.
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.
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 :
| Fichier | De quoi s'agit-il ? |
|---|---|
| exemple.com.selector2026.key | Clé de signature privée utilisée par Rspamd. Veillez à ce qu'elle reste la propriété de l'utilisateur _rspamd. |
| exemple.com.selector2026.pub | La clé publique, au format DNS, que vous publiez à l'étape 5 |
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 :
| Cadre | Ce qu'il contrôle |
|---|---|
| sélecteur | Le nom du sélecteur doit correspondre au nom de votre fichier de clé et à votre enregistrement DNS. |
| chemin | Emplacement où Rspamd trouve la clé privée ; les variables $domain et $selector sont renseignées automatiquement |
| autoriser_les_noms_d'utilisateur_non-correspondants | S'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.
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 :
| Milter | Ligne « Socket » dans le fichier main.cf |
|---|---|
| OpenDKIM | smtpd_milters = local:opendkim/opendkim.sock |
| Rspamd | smtpd_milters = inet:localhost:11332 |
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.
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 :
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 :
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.
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.
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.
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.
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.
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.
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 :
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.
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.
| Erreur | Cause probable | Fixer |
|---|---|---|
| Aucune signature DKIM dans les en-têtes | Le Milter n'est pas connecté ou le connecteur n'est pas compatible | Vé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ée | Le démon OpenDKIM ne fonctionne pas | systemctl 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és | Vé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 échoue | Décalage d'alignement | Le 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 DNS | Limite de 255 caractères pour les messages TXT imposée par le fournisseur | Répartir la clé publique entre deux chaînes de caractères entre guillemets dans le même enregistrement TXT |
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à :
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âche | Manuel (OpenDKIM / Rspamd) | DKIM hébergé |
|---|---|---|
| Rotation des clés | À la main, à chaque cycle : générer, publier, superposer, retirer | Automatique, aucune modification du DNS par cycle |
| Plusieurs domaines | Clé, enregistrement et configuration distincts par domaine | Géré de manière centralisée |
| Taille de la clé | 2048 bits (ou Ed25519) | Jusqu'à 4 096 bits |
| Gestion des sélecteurs | Suivi manuellement | Détection automatique pour les principaux fournisseurs de services Internet |
| Maintenance du DNS | Mis à jour à chaque rotation | Un 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
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.
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.
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.
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.
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.
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.
