DKIM & DMARC - Authentifier sa messagerie Google Workspace (DNS chez Wix)
- 1. SPF, DKIM, DMARC : à quoi ça sert
- 2. Prérequis
- 3. Vérifier l'existant (DNS)
- 4. SPF (déjà fourni par Google)
- 5. DKIM - générer la clé (Google)
- 6. DKIM - publier l'enregistrement (Wix)
- 7. DKIM - activer (Google)
- 8. DMARC - créer l'enregistrement
- 9. Le piège de l'adresse réservée
- 10. Rapports DMARC & analyseur
- 11. Durcir la politique (none -> reject)
- 12. Vérification finale & dépannage
- 13. Pièges classiques
1. SPF, DKIM, DMARC : à quoi ça sert
Ces trois mécanismes DNS prouvent qu'un e-mail envoyé au nom de votre domaine est légitime. Sans eux, vos messages partent en spam et n'importe qui peut usurper votre domaine. Depuis 2024, Google et Yahoo exigent au minimum SPF + DKIM (et DMARC pour les gros volumes).
| Mécanisme | Rôle | Type DNS |
|---|---|---|
| SPF | Liste les serveurs autorisés à envoyer pour le domaine | TXT (racine) |
| DKIM | Signe cryptographiquement chaque e-mail (clé publique en DNS) | TXT (google._domainkey) |
| DMARC | Dit quoi faire si SPF/DKIM échouent + envoie des rapports | TXT (_dmarc) |
2. Prérequis
- Un compte administrateur Google Workspace (le DKIM n'est pas disponible sur une simple boîte Gmail gratuite).
- L'accès à la gestion DNS du domaine chez Wix (Domaines -> DNS Records).
- Les MX du domaine pointent déjà vers Google (
aspmx.l.google.com, etc.).
mondomaine.com par votre domaine réel.
3. Vérifier l'existant (DNS)
Avant toute modification, faites un état des lieux des enregistrements déjà publiés.
Sous Linux / macOS
# MX (doit pointer vers Google)
dig +short MX mondomaine.com
# SPF (TXT racine)
dig +short TXT mondomaine.com
# DKIM (sélecteur Google par défaut)
dig +short TXT google._domainkey.mondomaine.com
# DMARC
dig +short TXT _dmarc.mondomaine.com
Sous Windows (PowerShell)
Resolve-DnsName -Type MX mondomaine.com
Resolve-DnsName -Type TXT mondomaine.com
Resolve-DnsName -Type TXT google._domainkey.mondomaine.com -Server 8.8.8.8
Resolve-DnsName -Type TXT _dmarc.mondomaine.com -Server 8.8.8.8
-Server 8.8.8.8 ou 1.1.1.1) pour voir ce que voit le monde extérieur, et non le cache local.
4. SPF (déjà fourni par Google)
Pour une messagerie Google Workspace, l'enregistrement SPF correct est :
v=spf1 include:_spf.google.com ~all
| Élément | Signification |
|---|---|
v=spf1 | Version SPF |
include:_spf.google.com | Autorise tous les serveurs d'envoi de Google |
~all | SoftFail : le reste est suspect (recommandé). -all = rejet strict. |
include: dans la même ligne. Exemple : v=spf1 include:_spf.google.com include:servers.mcsv.net ~all.
5. DKIM - générer la clé (Google)
La clé se génère depuis la console d'administration Google :
- Aller sur admin.google.com.
- Apps -> Google Workspace -> Gmail.
- Ouvrir Authentifier l'e-mail (Authenticate email).
- Sélectionner le domaine
mondomaine.com, puis Générer un nouvel enregistrement :- Longueur de clé : 2048 bits (recommandé).
- Préfixe du sélecteur : laisser
google(valeur par défaut).
Google affiche alors les deux éléments à publier :
| Champ | Valeur affichée par Google |
|---|---|
| Nom / Host | google._domainkey |
| Valeur | v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEF... (longue chaîne) |
6. DKIM - publier l'enregistrement (Wix)
- Wix -> Paramètres -> Domaines ->
mondomaine.com. - Modifier les enregistrements DNS (Advanced / DNS Records).
- Section TXT records -> Ajouter :
| Champ Wix | Valeur à saisir |
|---|---|
| Host name / Nom | google._domainkey |
| Type | TXT |
| Value / Valeur | La chaîne complète v=DKIM1; k=rsa; p=... |
| TTL | Laisser par défaut (1 h) |
google._domainkey (et non google._domainkey.mondomaine.com) : Wix complète le suffixe tout seul. Une double saisie donnerait google._domainkey.mondomaine.com.mondomaine.com.
7. DKIM - activer (Google)
- Attendre la propagation DNS (souvent 1 h, parfois jusqu'à 48 h).
- Vérifier que l'enregistrement est visible :
dig +short TXT google._domainkey.mondomaine.com @8.8.8.8 - Revenir dans Google -> Authentifier l'e-mail -> Démarrer l'authentification.
- Le statut doit passer à « Authentification de l'e-mail active ».
8. DMARC - créer l'enregistrement
DMARC s'appuie sur SPF et DKIM. On commence toujours en mode observation (p=none) pour ne rien bloquer pendant qu'on surveille.
Enregistrement de départ
Chez Wix, ajouter un TXT :
| Champ Wix | Valeur |
|---|---|
| Host name | _dmarc |
| Type | TXT |
| Value | v=DMARC1; p=none; rua=mailto:dmarc@mondomaine.com |
Balises DMARC utiles
| Balise | Rôle |
|---|---|
v=DMARC1 | Version (obligatoire, en premier) |
p= | Politique : none / quarantine / reject |
rua= | Adresse de réception des rapports agrégés (mailto:) |
ruf= | Rapports d'échec détaillés (Google ne les envoie pas : inutile ici) |
pct= | Pourcentage de messages soumis à la politique (ex. pct=25) |
sp= | Politique pour les sous-domaines |
adkim= / aspf= | Alignement strict (s) ou relâché (r, défaut) |
9. Le piège de l'adresse réservée
On utilise souvent postmaster@ ou abuse@ comme destinataire de rapports. Mais Google réserve ces noms (imposés par les standards Internet) : impossible de créer un utilisateur ou un alias avec ce nom. Google affiche alors :
Solution recommandée
Utiliser une adresse normale, par exemple dmarc@mondomaine.com :
- Soit une vraie boîte
dmarc@mondomaine.com, - Soit un alias
dmarcsur une boîte existante (tout arrive au même endroit).
Puis pointer rua=mailto:dmarc@mondomaine.com dans l'enregistrement DMARC.
postmaster@ : le seul moyen de recevoir du courrier sur une adresse réservée est de créer un Google Groupe portant ce nom (les groupes contournent la restriction). Plus lourd : préférez dmarc@.
rua= pointe vers une adresse d'un autre domaine, ce domaine externe doit publier un enregistrement d'autorisation mondomaine.com._report._dmarc.<domaine-externe> de type TXT valant v=DMARC1.
10. Rapports DMARC & analyseur
Les rapports agrégés (RUA) arrivent à l'adresse définie dans rua=, une fois par jour par fournisseur (Google, Microsoft, Yahoo...). Premier rapport sous 24 à 72 h (il faut du trafic mail).
.zip / .gz), illisibles à l'œil nu. Elles listent : qui a envoyé au nom du domaine, depuis quelle IP, et le résultat SPF/DKIM/DMARC.
Rendre les rapports lisibles
| Solution | Détail | Coût |
|---|---|---|
| Postmark DMARC | Résumé hebdomadaire par e-mail, sans tableau de bord. Limité au top 10 sources / top 5 IP. | Gratuit |
| Valimail Monitor | Tableau de bord visuel des sources d'envoi | Gratuit |
| dmarcian / URIports | Tableaux de bord complets, historique, temps réel | Gratuit (petit volume) puis payant |
| Lecture manuelle | Ouvrir les XML soi-même ou via un parseur en ligne | Gratuit (fastidieux) |
Brancher un analyseur (ex. Postmark)
- S'inscrire sur le service : il fournit une adresse rua unique (ex.
re+xxxx@dmarc.postmarkapp.com). - Ajouter cette adresse au
rua=, en gardant aussi la sienne (DMARC accepte plusieurs destinataires, séparés par une virgule) :v=DMARC1; p=none; rua=mailto:dmarc@mondomaine.com,mailto:re+xxxx@dmarc.postmarkapp.com - Publier le nouveau TXT
_dmarcchez Wix, puis vérifier le DNS.
dmarc@ en copie permet de conserver les XML bruts (archive / secours) en plus des rapports lisibles de l'analyseur.
11. Durcir la politique (none -> reject)
Une fois que les rapports confirment que tous vos envois légitimes passent en SPF/DKIM PASS (compter 1 à 2 semaines), durcissez progressivement la politique :
| Étape | Politique | Effet sur un mail usurpé |
|---|---|---|
| 1 (observation) | p=none | Rien (juste rapporté) - point de départ |
| 2 (transition) | p=quarantine | Placé en spam chez le destinataire |
| 3 (protection max) | p=reject | Rejeté avant livraison |
Exemple de palier intermédiaire prudent (25 % des messages en quarantaine) :
v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc@mondomaine.com
none à reject sans avoir analysé les rapports : un expéditeur légitime oublié (CRM, facturation, formulaire du site) verrait ses mails rejetés. Montez par paliers et surveillez après chaque changement.
12. Vérification finale & dépannage
Tester un envoi réel
Envoyer un mail depuis une adresse @mondomaine.com vers une boîte Gmail personnelle, puis ouvrir le message -> ⋮ -> Afficher l'original. On doit voir :
SPF: PASS with domain mondomaine.com
DKIM: 'PASS' with domain mondomaine.com
DMARC: 'PASS'
Vérifier les enregistrements en ligne de commande
# Les trois en une fois
dig +short TXT mondomaine.com # SPF
dig +short TXT google._domainkey.mondomaine.com # DKIM
dig +short TXT _dmarc.mondomaine.com # DMARC
| Symptôme | Cause probable | Correction |
|---|---|---|
| DKIM PASS attendu mais absent | « Démarrer l'authentification » pas cliqué dans Google | Activer côté Google (section 7) |
| DKIM : record introuvable | Propagation en cours / host mal saisi chez Wix | Attendre + vérifier google._domainkey sans suffixe |
| DMARC PASS mais DKIM/SPF fail | Désalignement de domaine (alignment) | Vérifier que l'enveloppe et l'en-tête From sont sur le même domaine |
| Aucun rapport reçu | Adresse rua inexistante / domaine externe non autorisé | Créer l'alias, ou ajouter l'autorisation _report (section 9) |
13. Pièges classiques
Piège 1 : DNS correct mais Google ne signe pas
Publier l'enregistrement DKIM ne suffit pas : il faut activer l'authentification dans la console Google. Tant que le statut n'est pas « actif », aucun mail n'est signé.
Piège 2 : double SPF
Deux enregistrements TXT SPF distincts = SPF invalide (permerror). Fusionner tous les include: dans une seule ligne.
Piège 3 : adresse réservée pour les rapports
postmaster@ et abuse@ sont réservés par Google. Utiliser dmarc@ (alias ou boîte).
Piège 4 : passage trop brutal en p=reject
Sans phase d'observation, on rejette des expéditeurs légitimes oubliés. Toujours none -> quarantine -> reject.
Piège 5 : host saisi avec le domaine chez Wix
Saisir google._domainkey et _dmarc seuls. Wix ajoute le domaine ; le redoubler casse l'enregistrement.
Piège 6 : valeur DKIM tronquée
La clé 2048 bits est longue. Si elle est coupée au collage, DKIM échoue. Coller la valeur entière d'un bloc et revérifier qu'elle se termine bien par ...QAB (fin typique d'une clé RSA encodée).
- MX -> Google (
aspmx.l.google.com...) - SPF ->
v=spf1 include:_spf.google.com ~all - DKIM ->
google._domainkeypublié (2048 bits) et activé côté Google - DMARC ->
_dmarcavecrua=vers une adresse valide, politique durcie progressivement