El problema que CAA resuelve
Cientos de Autoridades Certificadoras (CAs) son confiadas por los principales navegadores. Cualquiera de ellas, en principio, puede emitir un certificado SSL para cualquier dominio — incluido el tuyo. La mayoría están bien gestionadas; unas pocas han sido comprometidas o han emitido certificados erróneamente con los años.
Si una CA maliciosa o comprometida emite un certificado para yourdomain.com, un atacante con ese certificado puede suplantar tu sitio sin que el navegador alerte al usuario. Este es el modelo de amenaza que los registros CAA atacan.
Un registro CAA (Certification Authority Authorization) es una entrada DNS que lista explícitamente qué CAs pueden emitir certificados para tu dominio. Las CAs deben respetarlo — emitir un certificado para un dominio cuyo CAA lo prohíbe es base para que los navegadores desconfíen de la CA misma.
Cómo luce un CAA
Un registro típico:
example.com. IN CAA 0 issue "letsencrypt.org"
Lectura: "El identificador de CA es letsencrypt.org. Solo Let's Encrypt puede emitir certificados para example.com o sus subdominios".
Puedes especificar varios CAA para autorizar varias CAs:
- example.com. IN CAA 0 issue "letsencrypt.org"
- example.com. IN CAA 0 issue "digicert.com"
- example.com. IN CAA 0 issue "sectigo.com"
Y para rechazar la emisión wildcard por separado:
- example.com. IN CAA 0 issuewild "letsencrypt.org"
Los tres tipos de tag CAA
- issue: autoriza a la CA nombrada a emitir certificados regulares para este dominio.
- issuewild: autoriza a la CA nombrada a emitir certificados wildcard (*.example.com).
- iodef: indica un email o URL para que la CA contacte si detecta una violación.
El flag (el "0" en los ejemplos) es técnico — déjalo en 0 salvo razón específica.
El truco de "ninguna CA permitida"
Para prohibir explícitamente a CUALQUIER CA emitir certificados para tu dominio (útil para dominios aparcados o que no deberían servir tráfico nunca):
example.com. IN CAA 0 issue ";"
El punto y coma significa "ninguna CA autorizada". Cualquier CA que reciba una solicitud de emisión para este dominio debe rechazarla.
Por qué la adopción es baja
CAA es obligatoria para CAs desde 2017. Aun así, la adopción entre titulares está bajo el 20% en 2026. Razones:
- No es visible — no hay un elemento de UI que diga "deberías añadir esto".
- No es necesaria para que funcione HTTPS — los sitios funcionan sin CAA.
- Requiere entender qué CAs usa tu infraestructura, lo cual la mayoría no rastrea.
- Implementaciones tempranas tuvieron bugs que rompieron emisiones, lo que volvió cautos a los operadores.
Resultado: la protección está ampliamente disponible y rara vez desplegada. Cerrar la brecha en tus dominios lleva 5 minutos.
Cómo configurar registros CAA
Paso 1: Identifica tus CAs
¿Qué Autoridades Certificadoras emiten ahora certificados para tu dominio? Mira:
- Tu CDN (Cloudflare suele usar Let's Encrypt o Google Trust Services).
- Tu plataforma de hosting (Vercel, Netlify, Heroku — usualmente Let's Encrypt).
- Cualquier certificado explícito que hayas comprado (DigiCert, Sectigo, etc.).
- Ejecuta crt.sh?q=tudominio.com para ver todos los certificados emitidos — es el log autoritativo.
Haz una lista. La mayoría usa 1–2 CAs. Algunos 3–4 entre CDNs y plataformas.
Paso 2: Añade los registros CAA
En el panel de tu DNS, añade registros CAA para cada CA autorizada. Identificadores comunes:
- Let's Encrypt: letsencrypt.org
- Google Trust Services: pki.goog
- DigiCert: digicert.com
- Sectigo: sectigo.com
- GlobalSign: globalsign.com
- Cloudflare: cloudflare.com (para SSL en dominios gestionados por Cloudflare, aunque típicamente delega a LE/GTS)
- Amazon (ACM): amazon.com
En la UI DNS de Cloudflare, el tipo CAA está en el desplegable. Igual en Route 53, DNSimple y la mayoría de proveedores modernos.
Paso 3: Verifica
Comprueba tus registros CAA con:
dig CAA example.com
La salida debería mostrar tus registros configurados. Si los ves, las CAs que consulten autorización verán la misma respuesta.
Paso 4: Prueba la emisión
Intenta renovar tu certificado actual (o lanza una emisión por tu plataforma). Debería funcionar. Si falla con error CAA, has omitido al emisor real o usado el identificador equivocado — corrígelo y reintenta.
Los casos más finos
Certificados wildcard
Si usas wildcards (*.example.com), necesitas un registro issuewild además del issue. La autorización wildcard es separada de la regular.
CAA en subdominios
Los registros CAA cascadean: un registro en example.com aplica a api.example.com salvo que api.example.com tenga el suyo propio. Puedes ser más restrictivo en subdominios que en el ápex si lo necesitas.
Múltiples CAs en distintas propiedades
Si tu ápex usa Let's Encrypt y un subdominio usa DigiCert, necesitas ambos autorizados — o ambos en el ápex (más amplio) o repartidos entre ápex y CAA del subdominio (más estricto).
Añadir una CA nueva
Si empiezas a usar una CA nueva (alta en una plataforma, cambio de CDN), añade su CAA PRIMERO y luego dispara la emisión. Sin actualizar el CAA, la emisión fallará.
Errores comunes con CAA
- Olvidar autorizar la CA del CDN. Tu ápex usa LE; añades CAA para letsencrypt.org. Después pones Cloudflare delante y Cloudflare usa Google Trust Services — y la emisión silenciosamente falla.
- Usar el identificador de CA equivocado. Cada CA tiene una cadena específica. Una errata desactiva la autorización. Consulta la lista oficial antes de configurar.
- Poner CAA "ninguna CA" en un dominio en vivo. Bloquea toda emisión. Las renovaciones fallarán y te quedarás con un cert expirado. Prueba siempre primero en un dominio de test.
- Olvidar issuewild para wildcards. La emisión normal funciona; la wildcard falla en silencio hasta que añades issuewild.
Más allá de CAA: restricciones a nivel de cuenta
Algunas CAs (notablemente Let's Encrypt y DigiCert) soportan una capa más granular: restricciones a nivel de cuenta. Puedes configurar CAA para que solo certificados emitidos por tu cuenta específica en esa CA sean válidos:
example.com. IN CAA 0 issue "letsencrypt.org;accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/12345"
Ahora incluso un atacante que de algún modo engañó a Let's Encrypt no puede emitir un cert válido bajo tu dominio sin tu cuenta. Es un salto significativo para dominios de alto valor.
La acción de 5 minutos
- Identifica las 1–2 CAs que tu dominio usa actualmente.
- Añade registros CAA para esas CAs en tu proveedor DNS.
- Verifica con dig CAA tudominio.com.
- Prueba disparando o esperando una renovación.
Esa es la configuración entera. La protección es real: un atacante que comprometa una CA distinta no puede emitir un certificado válido para tu dominio. El coste es cero. La defensa es una de las victorias de seguridad más baratas en la web moderna — y está sin usar en la mayoría de dominios.