Maak kennis met PostScale -- e-mail-API voor transactionele, inkomende en gemaskeerde adressen. PostScale

    Wat is een CAA-record

    Leer hoe CAA-records bepalen welke certificaatautoriteiten SSL/TLS-certificaten mogen uitgeven voor je domein. Inclusief voorbeelden voor het DNScale-dashboard en de API.

    Een CAA (Certification Authority Authorization) record specificeert welke certificaatautoriteiten (CA's) SSL/TLS-certificaten mogen uitgeven voor je domein. CAA-records zijn een beveiligingsmaatregel die helpt ongeautoriseerde certificaatuitgifte te voorkomen.

    Hoe CAA-records werken

    Wanneer een CA een certificaataanvraag ontvangt, moet deze de CAA-records controleren:

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

    Dit vertelt CA's: "Alleen Let's Encrypt mag certificaten uitgeven voor example.com."

    Als er geen CAA-records bestaan, kan elke CA certificaten uitgeven. Zodra je CAA-records toevoegt, kunnen alleen geautoriseerde CA's certificaten uitgeven.

    Recordcomponenten

    ComponentBeschrijvingWaarden
    FlagKritieke vlag0 (niet-kritiek) of 128 (kritiek)
    TagEigendomstypeissue, issuewild, iodef
    ValueCA-domein of contactadres"letsencrypt.org"

    Tags uitgelegd

    TagDoel
    issueAutoriseer CA voor reguliere certificaten
    issuewildAutoriseer CA voor wildcardcertificaten
    iodefMeld beleidsovertredingen naar dit adres

    Veelvoorkomende toepassingen

    Eén CA toestaan (Let's Encrypt)

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

    Meerdere CA's toestaan

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

    Reguliere en wildcarduitgifte scheiden

    ; Reguliere certificaten van Let's Encrypt
    example.com.    3600    CAA    0 issue "letsencrypt.org"
     
    ; Wildcardcertificaten alleen van DigiCert
    example.com.    3600    CAA    0 issuewild "digicert.com"

    Alle certificaatuitgifte weigeren

    example.com.    3600    CAA    0 issue ";"

    Met overtredingsrapportage

    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"

    Alleen wildcards van specifieke CA toestaan

    example.com.    3600    CAA    0 issue "letsencrypt.org"
    example.com.    3600    CAA    0 issuewild ";"  ; Alle wildcards weigeren

    Populaire CA-identifiers

    CACAA-waarde
    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 gebruikt DigiCert)
    ZeroSSLsectigo.com

    Recordformaat

    VeldBeschrijvingVoorbeeld
    NaamDomein (meestal apex)@ of subdomein
    TypeRecordtypeCAA
    FlagKritieke vlag0 of 128
    TagEigendomstypeissue, issuewild, iodef
    ValueCA-identifierletsencrypt.org
    TTLTime to live (seconden)3600

    Een CAA-record toevoegen

    Via het dashboard

    1. Navigeer naar je zone in het DNScale-dashboard
    2. Klik op Add Record
    3. Configureer het record:
      • Name: Meestal @ voor het apex-domein
      • Type: Selecteer CAA
      • Flag: Kies 0 (Niet-kritiek) of 128 (Kritiek)
      • Tag: Selecteer issue, issuewild of iodef
      • Value: Voer het CA-domein of contactadres in
      • TTL: Stel de cacheduur in (standaard: 3600)
    4. Klik op Create Record

    Via de API

    Let's Encrypt toestaan om certificaten uit te geven:

    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
      }'

    Wildcardautorisatie toevoegen:

    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
      }'

    Overtredingsrapportage toevoegen:

    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
      }'

    API-antwoord:

    {
      "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
        }
      }
    }

    CAA-overerving

    CAA-records worden overgenomen door subdomeinen tenzij ze worden overschreven:

    ; Apex CAA - geldt voor example.com en alle subdomeinen
    example.com.         3600    CAA    0 issue "letsencrypt.org"
     
    ; Overschrijving voor specifiek subdomein
    shop.example.com.    3600    CAA    0 issue "digicert.com"

    In dit geval:

    • example.com - alleen Let's Encrypt
    • www.example.com - alleen Let's Encrypt (overgenomen)
    • shop.example.com - alleen DigiCert (overschreven)

    Best practices

    1. Begin met monitoring - Voeg iodef-records toe om rapporten te ontvangen voordat je de uitgifte beperkt

    2. Neem je daadwerkelijke CA op - Controleer voordat je beperkende records toevoegt welke CA je gebruikt

    3. Plan voor wildcards - Onthoud dat issuewild los staat van issue

    4. Gebruik de niet-kritieke vlag (0) - Gebruik vlag 128 alleen als je strikte afdwinging wilt

    5. Werk bij voor het wisselen van CA's - Voeg nieuwe CA-autorisatie toe voordat je van provider wisselt

    6. Vergeet subdomeinen niet - Controleer of subdomeinen ander beleid nodig hebben

    Probleemoplossing bij certificaatuitgifte

    Als certificaatuitgifte mislukt na het toevoegen van CAA-records:

    1. Verifieer dat CAA-records bestaan:

      dig CAA example.com
    2. Controleer op juiste CA-identifier:

      • Neem contact op met je CA voor de exacte identifier
      • Sommige CA's gebruiken identifiers van het moederbedrijf
    3. Verifieer wildcardautorisatie:

      • issuewild is vereist voor wildcardcertificaten
      • Als alleen issue bestaat, zullen wildcards mislukken
    4. Controleer subdomein-overerving:

      • Subdomeinen erven het CAA-record van de bovenliggende tenzij overschreven

    CAA-records testen

    # CAA-records opvragen
    dig CAA example.com
     
    # Controleren met specifieke nameserver
    dig CAA example.com @ns1.dnscale.eu
     
    # Online tools gebruiken
    # - SSLLabs SSL Test
    # - CAA Test (caatest.co.uk)

    Gerelateerde recordtypen

    • TXT - Domeinverificatie voor CA's
    • TLSA - DANE certificate pinning
    • A - Serveradres voor validatie

    Conclusie

    CAA-records zijn een eenvoudige maar effectieve beveiligingsmaatregel voor het controleren van SSL/TLS-certificaatuitgifte. Door te specificeren welke CA's certificaten mogen uitgeven voor je domein, verminder je het risico van ongeautoriseerde certificaataanmaak. DNScale maakt het eenvoudig om CAA-records te configureren met intuïtieve tagselectie voor issue-, issuewild- en iodef-beleid.