Comprendiendo el desafío DNS-01: La llave para tus certificados SSL sin fronteras

Aprende cómo funciona la validación por DNS para emitir certificados SSL/TLS automatizados, comodín (wildcards) y para servidores privados.

En el ecosistema de la seguridad web moderna, la automatización del protocolo ACME (utilizado por autoridades de certificación como Let's Encrypt) revolucionó la gestión de certificados SSL/TLS.

Para emitir un certificado, la Autoridad Certificadora (CA) exige comprobar que realmente eres el dueño del dominio solicitado. Para esto existen dos métodos principales: el desafío HTTP-01 y el desafío DNS-01.

¿Qué es el desafío DNS-01?

El desafío DNS-01 es un mecanismo de prueba que valida el dominio publicando un registro especial en el Sistema de Nombres de Dominio (DNS), en lugar de servir un archivo a través de un servidor web. A diferencia del método tradicional (HTTP-01), la verificación no requiere exponer el puerto 80 ni tener un servidor web público respondiendo en esa máquina.

¿Cómo funciona el proceso paso a paso?

1. Solicitud de Certificado: El cliente ACME (como Certbot, acme.sh o Lego) solicita un certificado a la CA para tu dominio o subdominio.
2. Generación del Token: La CA devuelve una clave/token único generado para dicha solicitud.
3. Publicación del Registro TXT: Tu cliente ACME se conecta a la API de tu proveedor de DNS (Cloudflare, Route 53, DigitalOcean, etc.) y crea un registro de tipo TXT en:
_acme-challenge.tudominio.com
4. Validación por la CA: La CA realiza una consulta DNS pública. Si el valor del registro coincide exactamente con el token esperado, se certifica la propiedad del dominio.
5. Emisión y Limpieza: La CA firma y expide el certificado SSL. Inmediatamente después, el cliente ACME elimina el registro TXT de tu zona DNS mediante la API.

Las 3 ventajas clave de DNS-01

✨ 1. Soporte para Certificados Comodín (Wildcards)

Es el único método soportado para solicitar certificados wildcard (ejemplo: *.tudominio.com). Con un solo certificado podrás asegurar todos tus subdominios actuales y futuros.

🔒 2. Servidores privados e Intranets

Ideal para servidores dentro de una red local, VPN, o detrás de firewalls estrictos. No necesitas abrir los puertos 80 o 443 al público para renovar tu SSL.

⚡ 3. Aprovisionamiento Previo

Permite generar e instalar el certificado SSL en una máquina antes de que el tráfico web sea redirigido oficialmente a ella.

⚠️ Consideraciones a tener en cuenta:

  • Requiere acceso a API DNS: Tu cliente necesita credenciales o llaves API con permisos de escritura en tus registros DNS.
  • Tiempo de propagación: Dependiendo del TTL de tu proveedor DNS, el proceso de validación puede tardar un par de minutos en completarse.