Un enregistrement CAA bloque le renouvellement du certificat : comment trouver la cause et corriger
La réponse courte
Avant d'émettre un certificat, une AC publique doit lire vos enregistrements CAA, et elle doit refuser s'ils ne la nomment pas (RFC 8659, Baseline Requirements du CA/Browser Forum 3.2.2.8). Le renouvellement échoue quand l'enregistrement CAA liste une autre AC que celle qui renouvelle, quand un enregistrement mal formé ne nomme personne, ou quand un certificat générique (wildcard) n'est pas autorisé.
Le calcul : quel enregistrement lit l'AC
Une AC ne lit pas toute votre zone. Elle part du nom exact figurant sur le certificat et remonte d'un label à la fois, et le premier nom qui porte des enregistrements CAA décide. Ici, un CDN tente de renouveler www.shop.example.com avec Let's Encrypt :
| Nom interrogé par l'AC | Ce que ça trouve | Suite |
|---|---|---|
www.shop.example.com | Aucun enregistrement CAA | Remonter d'un label |
shop.example.com | Aucun enregistrement CAA | Remonter d'un label |
example.com | 0 issue "digicert.com" | Cet ensemble décide |
| Let's Encrypt (letsencrypt.org) ne figure pas dans cet ensemble | Refusé | |
La correction tient en une ligne sur example.com : 0 issue "letsencrypt.org" à côté de la ligne DigiCert. Chaque AC que vous utilisez a besoin de son propre enregistrement issue ; l'ensemble est une liste d'AC autorisées, pas un classement.
Ce qui casse, et qui s'en aperçoit
- L'AC refuse avant qu'aucun certificat n'existe. Votre tâche de renouvellement journalise une erreur CAA et votre site continue de servir l'ancien certificat : rien ne semble anormal jusqu'à ce que celui-ci expire. Baseline Requirements 3.2.2.8
- Un enregistrement mal formé ne nomme personne. Une erreur courante consiste à coller les flags et le tag dans le champ valeur, ce qui publie quelque chose comme 0 issue "0 issue letsencrypt.org". Cela ne correspond à aucune AC. Si c'est le seul enregistrement, aucune AC ne peut émettre. RFC 8659 §4.2
- Les certificats génériques suivent leur propre règle. Quand des enregistrements issuewild existent, ce sont eux qui décident pour les certificats génériques, à la place de issue, et 0 issuewild ";" interdit tout certificat générique. RFC 8659 §4.3
- Le flag critique bloque tout ce qu'il ne comprend pas. Un enregistrement avec le flag 128 et un tag que l'AC ne connaît pas oblige l'AC à refuser. RFC 8659 §4.1
- Des certificats plus courts laissent moins de marge. Les certificats publics passent à 100 jours en mars 2027 et à 47 jours en mars 2029 : un renouvellement bloqué par CAA atteint donc l'expiration plus tôt.
Contrôlez votre enregistrement CAA
Le contrôle gratuit du domaine lit les enregistrements CAA de votre domaine, vérifie leur format selon RFC 8659 et indique qui a émis le certificat que vous servez aujourd'hui.
Gratuit, sans compte. Nous lisons uniquement le DNS public et ce que vos serveurs montrent à quiconque s'y connecte.
Corriger, étape par étape
Déterminez quelle AC renouvelle chaque certificat
Lisez l'émetteur du certificat que vous servez aujourd'hui (le contrôle gratuit l'affiche sur la carte du certificat) et demandez à qui gère les renouvellements : votre CDN, votre panneau d'hébergement, votre répartiteur de charge ou votre client ACME. Un même domaine utilise souvent deux ou trois AC.
Trouvez l'enregistrement que lit l'AC
Interrogez CAA sur le nom exact, puis sur chaque parent jusqu'à votre domaine, par exemple dig CAA www.shop.example.com +short. Le premier nom qui répond avec des enregistrements CAA est celui qui compte.
Listez chaque AC que vous utilisez
Un enregistrement issue par AC, avec l'identifiant propre de l'AC : letsencrypt.org, pki.goog pour Google Trust Services, sectigo.com, digicert.com. Ajoutez des enregistrements issuewild si vous utilisez des certificats génériques.
Respectez le format
Un enregistrement CAA se compose d'un flag, d'un tag et d'une valeur entre guillemets : 0 issue "letsencrypt.org". Dans un panneau DNS à champs séparés, ne mettez que le nom de l'AC dans le champ valeur.
Ajoutez une adresse de signalement
Ajoutez 0 iodef "mailto:security@example.com". Une AC peut l'utiliser pour vous signaler une demande que votre politique a refusée.
Attendez la fin du TTL et relancez le renouvellement
L'AC lit l'enregistrement en direct, mais les résolveurs gardent l'ancienne réponse jusqu'à l'expiration de son TTL. Relancez ensuite le renouvellement et vérifiez l'émetteur du nouveau certificat.
Erreurs fréquentes
Lister l'AC auprès de laquelle vous avez acheté, et non celle qu'utilise votre CDN
Les CDN et les panneaux d'hébergement renouvellent souvent avec leur propre AC, et peuvent alterner entre deux d'entre elles. Votre CAA doit toutes les nommer.
Dans le résultat SkyQon : sur un domaine surveillé, l'alerte « CAA will refuse your CA's next renewal » indique le certificat, son AC et la ligne à ajouter. Le contrôle gratuit ponctuel affiche l'émetteur sur la carte du certificat pour que vous compariez vous-même.
Coller les flags dans le champ valeur
Le panneau ajoute déjà 0 issue ; le saisir à nouveau publie une valeur qui ne correspond à aucune AC.
Dans le résultat SkyQon : le constat « CAA is published but authorises no certificate authority » quand il ne reste rien de valide, ou « malformed CAA record published alongside valid ones » quand un enregistrement valide vous couvre encore.
Oublier les certificats génériques
Les enregistrements issue ne couvrent plus un certificat générique dès qu'un enregistrement issuewild existe, et 0 issuewild ";" les interdit tous.
Dans le résultat SkyQon : sur un domaine surveillé, un certificat générique est évalué selon vos enregistrements issuewild dès qu'il en existe, comme le fait une AC.
Un sous-domaine avec son propre ensemble CAA
Un ensemble CAA sur un sous-domaine remplace celui de votre domaine pour chaque nom situé en dessous : une AC ajoutée au sommet peut donc encore y être refusée.
Dans le résultat SkyQon : CAA est lu comme une AC le lit, du nom jusqu'au premier nom qui a des enregistrements. Pour un nom qui reçoit du courrier, le constat indique de quel nom il s'agit. Pour un nom uniquement web, c'est l'alerte de renouvellement bloqué qui le nomme.
Ce que SkyQon fait et ne fait pas
Ce que ça trouve
Les enregistrements CAA qui s'appliquent à votre domaine, lus comme une AC les lit (du nom jusqu'au premier nom qui en a) et vérifiés selon le format RFC 8659. Sur un domaine surveillé, également si l'AC derrière chaque certificat que vous servez peut le renouveler.
Ce que vous obtenez
L'enregistrement exact à publier. À partir de Pro, SkyQon peut aussi créer ou réparer l'enregistrement CAA via l'API de votre fournisseur DNS quand vous le demandez, avec possibilité d'annulation.
Ce que ce n’est pas
Nous ne modifions votre DNS que si vous nous le demandez (à partir de Pro). Un certificat émis par une AC que nous ne reconnaissons pas n'est jamais évalué : il ne reçoit donc aucun avertissement de renouvellement. Le contrôle gratuit ponctuel ne compare pas CAA avec votre certificat.
Enregistrements CAA : les questions fréquentes
Un enregistrement CAA est-il obligatoire ?
Quels identifiants utilisent les grandes AC ?
Faut-il un CAA sur chaque sous-domaine ?
À quoi sert issuewild ?
Que signifie le flag 128 ?
CAA empêche-t-il l'usage abusif d'un certificat déjà émis ?
CAA s'applique-t-il à mon AC interne ?
Et pour un nom qui est un CNAME ?
En combien de temps une modification prend-elle effet ?
Sources
- RFC 8659 §3 : quel ensemble d'enregistrements CAA s'applique
- RFC 8659 §4.1 : le flag critique
- RFC 8659 §4.2 : la propriété issue
- RFC 8659 §4.3 : la propriété issuewild
- RFC 8659 §4.4 : la propriété iodef
- Baseline Requirements du CA/Browser Forum §3.2.2.8 : traitement des enregistrements CAA
Pages associées
Trouvez un blocage CAA avant que votre renouvellement ne le rencontre.
Le contrôle gratuit lit en une seule fois les enregistrements CAA qui s'appliquent à votre domaine et votre certificat. Ajoutez le domaine au plan Free et chaque analyse vérifie que l'AC de votre certificat peut toujours le renouveler.