Enregistrements DNS joker : comment fonctionne *.example.com
Un enregistrement nommé *.example.com répond pour chaque sous-domaine que vous n'avez jamais créé : blog, test, nimporte-quoi. Un sous-domaine par client ou des environnements de prévisualisation tiennent alors en une ligne. Mais les fautes de frappe se résolvent aussi, le courrier est invité vers des hôtes inexistants et un sous-domaine oublié peut passer à quelqu'un d'autre. Les règles de ce que couvre l'astérisque sont plus strictes qu'on ne le croit.
Comment répond un joker
Un résolveur demande un nom. Si la zone ne le contient pas, le serveur cherche un enregistrement * au nom existant le plus proche et répond comme si l'enregistrement avait été écrit pour le nom demandé (RFC 4592). Prenons cette zone :
; zone example.com
example.com. 3600 IN A 203.0.113.10
www.example.com. 3600 IN CNAME example.com.
shop.example.com. 3600 IN A 203.0.113.20
*.example.com. 3600 IN A 203.0.113.80| Requête | Réponse | Pourquoi |
|---|---|---|
example.com A | 203.0.113.10 | L'apex n'est jamais couvert par *.example.com. |
shop.example.com A | 203.0.113.20 | Le nom existe, le joker est donc ignoré. |
blog.example.com A | 203.0.113.80 | Ce nom n'existe pas : la réponse est fabriquée à partir de *. |
a.b.example.com A | 203.0.113.80 | Ni b ni a.b n'existent, il est donc couvert, quel que soit le nombre de labels. |
shop.example.com MX | Aucun enregistrement (NODATA) | Le nom existe. Le joker n'ajoute jamais les types qui manquent à un vrai nom. |
x.shop.example.com A | NXDOMAIN | Le nom existant le plus proche est shop, et il n'y a pas de *.shop.example.com. |
Les règles qui piègent
- Les noms existants sont intouchables. Si
wwwn'a qu'un CNAME, une requête TXT pourwwwn'obtient rien de*, même si le joker a un enregistrement TXT. - Un nom « existe » même sans enregistrement propre dès que quelque chose se trouve en dessous. Créez
api.dev.example.cometdev.example.comse met à exister :test.dev.example.comn'atteint plus*.example.com. - L'astérisque ne fonctionne que comme label entier le plus à gauche.
*.example.comest un joker ;www.*.example.com,*-dev.example.comet*abc.example.comsont des noms ordinaires, pris à la lettre. - Un CNAME joker est autorisé, mais comme tout CNAME il ne peut partager son nom avec d'autres enregistrements :
*.example.comCNAME plus*.example.comMX est invalide. - Les réponses portent le nom demandé, pas
*. Le client ne peut pas distinguer une réponse du joker d'un vrai enregistrement ; seule la comparaison avec un nom aléatoire la révèle.
*.example.com couvre blog.example.com, mais ni a.b.example.com ni example.com lui-même. Qu'un joker DNS résolve des noms profonds n'étend pas le certificat.Quand un joker est le bon outil
- SaaS avec un sous-domaine par client (
acme.app.example) : les nouveaux clients fonctionnent tout de suite et l'application choisit le client à afficher d'après l'en-têteHost. - Environnements de prévisualisation et de branche créés et détruits automatiquement, tous derrière le même répartiteur de charge.
- Une redirection fourre-tout qui envoie tout sous-domaine mal saisi vers le site principal — si vous acceptez les effets de bord ci-dessous.
Les risques
- Les fautes de frappe ont l'air de fonctionner.
ww.example.comoumial.example.comse résolvent et aboutissent sur un serveur qui peut afficher une page déroutante au lieu d'une erreur claire. - Le courrier. Un
MXjoker fait de chaque sous-domaine inventé une destination de courrier valide, ce que les spammeurs remarquent ; unAjoker sans aucunMXfait de même via le repli sur l'enregistrement A. Si le joker ne sert qu'au web, publiez dessus un null MX et un SPF strict. - Prise de contrôle de sous-domaine. Un CNAME joker vers un service cloud (
*.example.com→example.azurewebsites.net) offre chaque sous-domaine non réclamé à quiconque enregistre cette cible après votre départ du service. - Erreurs masquées. Un enregistrement supprimé continue de « marcher » grâce au joker, si bien qu'une migration ratée peut passer inaperçue — jusqu'au retrait du joker.
; keep a web wildcard from inviting mail to every subdomain
*.example.com. 3600 IN MX 0 . ; RFC 7505 "null MX"
*.example.com. 3600 IN TXT "v=spf1 -all"Comment savoir si un domaine a un joker
Demandez un nom que personne ne créerait. S'il se résout, il y a un joker (ou un CDN ou fournisseur DNS qui synthétise les réponses). Comparez ensuite avec un vrai sous-domaine :
# a label that surely does not exist — answered by the wildcard?
dig +short pixdns-test-7f3a.example.com A
# compare with a name that does exist
dig +short shop.example.com AQuestions fréquentes
*.example.com couvre-t-il example.com ?
Non. Le joker couvre les noms sous le domaine, jamais le domaine lui-même. Gardez un enregistrement distinct pour l'apex.
*.example.com couvre-t-il a.b.example.com ?
En DNS, oui, tant que b.example.com n'existe pas. Un certificat TLS joker, lui, ne couvre qu'un seul niveau.
Pourquoi mon joker ne marche-t-il pas pour un sous-domaine ?
Parce que ce nom, ou un nom en dessous, existe dans la zone. Un nom existant ne reçoit jamais de réponse du joker, même pour les types qu'il n'a pas.
Puis-je utiliser un joker pour MX ou TXT ?
Oui, tout type d'enregistrement peut être un joker. Un MX joker est rarement une bonne idée ; un null MX joker et v=spf1 -all sont une protection courante.
Voyez la théorie en pratique — lancez Recherche DNS pour votre propre domaine.
Mis à jour le 13 octobre 2026