Découvrez PostScale -- API e-mail pour l'envoi transactionnel, la réception et les adresses masquées. PostScale

    Qu'est-ce qu'un enregistrement CAA

    Apprenez comment les enregistrements CAA controlent quelles autorites de certification peuvent emettre des certificats SSL/TLS pour votre domaine. Inclut des exemples pour le tableau de bord et l'API DNScale.

    Un enregistrement CAA (Certification Authority Authorization) specifie quelles autorites de certification (CA) sont autorisees a emettre des certificats SSL/TLS pour votre domaine. Les enregistrements CAA sont une mesure de securite qui aide a prevenir l'emission non autorisee de certificats.

    Comment fonctionnent les enregistrements CAA

    Lorsqu'une CA recoit une demande de certificat, elle doit verifier les enregistrements CAA :

    example.com.    3600    CAA    0 issue "letsencrypt.org"

    Cela indique aux CA : « Seul Let's Encrypt peut emettre des certificats pour example.com. »

    Si aucun enregistrement CAA n'existe, n'importe quelle CA peut emettre des certificats. Des que vous ajoutez des enregistrements CAA, seules les CA autorisees peuvent emettre.

    Composants de l'enregistrement

    ComposantDescriptionValeurs
    FlagIndicateur critique0 (non critique) ou 128 (critique)
    TagType de proprieteissue, issuewild, iodef
    ValueDomaine CA ou contact"letsencrypt.org"

    Tags expliques

    TagFonction
    issueAutoriser une CA pour les certificats reguliers
    issuewildAutoriser une CA pour les certificats wildcard
    iodefSignaler les violations de politique a cette adresse

    Cas d'utilisation courants

    Autoriser une seule CA (Let's Encrypt)

    example.com.    3600    CAA    0 issue "letsencrypt.org"

    Autoriser plusieurs CA

    example.com.    3600    CAA    0 issue "letsencrypt.org"
    example.com.    3600    CAA    0 issue "digicert.com"
    example.com.    3600    CAA    0 issue "sectigo.com"

    Separer l'emission reguliere et wildcard

    ; Certificats reguliers depuis Let's Encrypt
    example.com.    3600    CAA    0 issue "letsencrypt.org"
     
    ; Certificats wildcard depuis DigiCert uniquement
    example.com.    3600    CAA    0 issuewild "digicert.com"

    Refuser toute emission de certificat

    example.com.    3600    CAA    0 issue ";"

    Avec signalement de violations

    example.com.    3600    CAA    0 issue "letsencrypt.org"
    example.com.    3600    CAA    0 iodef "mailto:security@example.com"
    example.com.    3600    CAA    0 iodef "https://example.com/caa-report"

    Autoriser les wildcard uniquement depuis une CA specifique

    example.com.    3600    CAA    0 issue "letsencrypt.org"
    example.com.    3600    CAA    0 issuewild ";"  ; Refuser tous les wildcards

    Identifiants des CA populaires

    CAValeur CAA
    Let's Encryptletsencrypt.org
    DigiCertdigicert.com
    Sectigo (Comodo)sectigo.com
    GlobalSignglobalsign.com
    GoDaddygodaddy.com
    Amazon (ACM)amazon.com
    Google Trust Servicespki.goog
    Cloudflaredigicert.com (Cloudflare utilise DigiCert)
    ZeroSSLsectigo.com

    Format de l'enregistrement

    ChampDescriptionExemple
    NomDomaine (generalement apex)@ ou sous-domaine
    TypeType d'enregistrementCAA
    FlagIndicateur critique0 ou 128
    TagType de proprieteissue, issuewild, iodef
    ValueIdentifiant CAletsencrypt.org
    TTLDuree de vie (secondes)3600

    Ajouter un enregistrement CAA

    Via le tableau de bord

    1. Accedez a votre zone dans le tableau de bord DNScale
    2. Cliquez sur Add Record
    3. Configurez l'enregistrement :
      • Name : Generalement @ pour le domaine apex
      • Type : Selectionnez CAA
      • Flag : Choisissez 0 (Non critique) ou 128 (Critique)
      • Tag : Selectionnez issue, issuewild ou iodef
      • Value : Saisissez le domaine CA ou l'adresse de contact
      • TTL : Definissez la duree de mise en cache (par defaut : 3600)
    4. Cliquez sur Create Record

    Via l'API

    Autoriser Let's Encrypt a emettre des certificats :

    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "@",
        "type": "CAA",
        "content": "0 issue \"letsencrypt.org\"",
        "ttl": 3600
      }'

    Ajouter une autorisation wildcard :

    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "@",
        "type": "CAA",
        "content": "0 issuewild \"letsencrypt.org\"",
        "ttl": 3600
      }'

    Ajouter le signalement de violations :

    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "@",
        "type": "CAA",
        "content": "0 iodef \"mailto:security@example.com\"",
        "ttl": 3600
      }'

    Reponse de l'API :

    {
      "status": "success",
      "data": {
        "message": "Record created successfully",
        "record": {
          "id": "encoded-record-id",
          "name": "example.com.",
          "type": "CAA",
          "content": "0 issue \"letsencrypt.org\"",
          "ttl": 3600,
          "disabled": false
        }
      }
    }

    Heritage des enregistrements CAA

    Les enregistrements CAA sont herites par les sous-domaines sauf s'ils sont remplaces :

    ; CAA a l'apex - s'applique a example.com et tous les sous-domaines
    example.com.         3600    CAA    0 issue "letsencrypt.org"
     
    ; Remplacement pour un sous-domaine specifique
    shop.example.com.    3600    CAA    0 issue "digicert.com"

    Dans ce cas :

    • example.com - Let's Encrypt uniquement
    • www.example.com - Let's Encrypt uniquement (herite)
    • shop.example.com - DigiCert uniquement (remplace)

    Bonnes pratiques

    1. Commencez par la surveillance - Ajoutez des enregistrements iodef pour recevoir des rapports avant de restreindre l'emission

    2. Incluez votre CA actuelle - Avant d'ajouter des enregistrements restrictifs, verifiez quelle CA vous utilisez

    3. Planifiez pour les wildcards - Rappelez-vous que issuewild est separe de issue

    4. Utilisez le flag non critique (0) - N'utilisez le flag 128 que si vous voulez une application stricte

    5. Mettez a jour avant de changer de CA - Ajoutez la nouvelle autorisation CA avant de changer de fournisseur

    6. N'oubliez pas les sous-domaines - Verifiez si les sous-domaines necessitent des politiques differentes

    Depannage de l'emission de certificats

    Si l'emission de certificats echoue apres l'ajout d'enregistrements CAA :

    1. Verifiez que les enregistrements CAA existent :

      dig CAA example.com
    2. Verifiez l'identifiant CA correct :

      • Contactez votre CA pour l'identifiant exact
      • Certaines CA utilisent les identifiants de la societe mere
    3. Verifiez l'autorisation wildcard :

      • issuewild est requis pour les certificats wildcard
      • Si seul issue existe, les wildcards echoueront
    4. Verifiez l'heritage des sous-domaines :

      • Les sous-domaines heritent du CAA parent sauf s'il est remplace

    Tester les enregistrements CAA

    # Interroger les enregistrements CAA
    dig CAA example.com
     
    # Verifier avec un serveur de noms specifique
    dig CAA example.com @ns1.dnscale.eu
     
    # Utiliser les outils en ligne
    # - SSLLabs SSL Test
    # - CAA Test (caatest.co.uk)

    Types d'enregistrements associes

    • TXT - Verification de domaine pour les CA
    • TLSA - Ancrage de certificat DANE
    • A - Adresse du serveur pour la validation

    Conclusion

    Les enregistrements CAA sont une mesure de securite simple mais efficace pour controler l'emission de certificats SSL/TLS. En specifiant quelles CA peuvent emettre des certificats pour votre domaine, vous reduisez le risque de creation non autorisee de certificats. DNScale facilite la configuration des enregistrements CAA avec une selection intuitive des tags pour les politiques issue, issuewild et iodef.