Respuesta corta: qué es DKIM, en una frase: una firma digital que tu servidor de correo añade a cada mensaje; quien lo recibe la valida con una clave pública que tú publicas en el DNS. Para comprobarlo, envía un correo a una cuenta de Gmail, abre «Mostrar original» y busca
DKIM: PASScon tu dominio. Si aparece el dominio de tu proveedor, o no aparece nada, tu dominio no está firmando bien.
Qué es DKIM y para qué sirve
Qué es DKIM en la práctica: DKIM (DomainKeys Identified Mail, definido en el RFC 6376) responde a una pregunta concreta: ¿este correo lo ha enviado alguien autorizado por el dominio y ha llegado sin modificar? Funciona así:
- Tu servicio de correo (Google Workspace, Microsoft 365, tu hosting, Mailchimp…) guarda una clave privada.
- Al enviar, calcula una firma sobre algunas cabeceras (From, Subject, Date…) y sobre el cuerpo, y la añade en la cabecera
DKIM-Signature. - Esa cabecera indica dos datos clave: el dominio que firma (
d=) y el selector (s=), que es el nombre de la clave. - El receptor busca la clave pública en el DNS, en
selector._domainkey.tudominio.com, y comprueba la firma.
Una cabecera real se parece a esto:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=tudominio.com; s=google; t=1730192400;
h=from:to:subject:date:message-id;
bh=…; b=…
DKIM no cifra el mensaje ni impide que alguien lo lea. Solo garantiza origen e integridad. Y por sí solo no le dice al receptor qué hacer si la firma falla: eso lo decide DMARC, que además exige que el dominio de d= coincida con el del remitente visible (el From). A eso se le llama alineación, y es donde fallan la mayoría de configuraciones. Lo explicamos en la guía general de por qué los correos llegan a spam.
DKIM frente a SPF
SPF autoriza servidores por su IP, y se rompe con los reenvíos porque el servidor que reenvía no está en tu lista. DKIM viaja dentro del mensaje: si nadie toca las cabeceras firmadas ni el cuerpo, la firma sigue siendo válida aunque el correo pase por varios servidores. Por eso, cuando un correo legítimo se reenvía, muchas veces es DKIM el que salva el DMARC. Necesitas los dos. Si tu SPF da problemas, mira la guía de SPF mal configurado.
Cómo saber si tu dominio firma con DKIM
1. Mira las cabeceras de un correo real
Es la prueba que manda, porque ves exactamente lo que ve el receptor.
- Envía un correo desde tu cuenta del dominio a una cuenta de Gmail.
- En Gmail, abre el mensaje, pulsa el menú de los tres puntos y elige «Mostrar original».
- Arriba verás un resumen con SPF, DKIM y DMARC. Lo que quieres ver es
DKIM: 'PASS' con el dominio tudominio.com. - Más abajo, busca la cabecera
Authentication-Results.
Una cabecera sana tiene este aspecto:
Authentication-Results: mx.google.com;
dkim=pass header.i=@tudominio.com header.s=google header.b=Ab12Cd34;
spf=pass smtp.mailfrom=tudominio.com;
dmarc=pass (p=QUARANTINE) header.from=tudominio.com
Fíjate en tres cosas: que ponga dkim=pass, que header.i (o header.d) sea tu dominio y no el de tu proveedor, y el selector (header.s), que necesitas para el siguiente paso.
En Outlook de escritorio las cabeceras están en Archivo > Propiedades > Encabezados de Internet. En Outlook web, abre el mensaje y busca «Ver detalles del mensaje» en el menú de acciones.
2. Comprueba la clave pública en el DNS
Con el selector en la mano, consulta el registro:
dig +short TXT google._domainkey.tudominio.com
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA…"
En Microsoft 365 los selectores son selector1 y selector2, y se publican como CNAME que apuntan a tu tenant:
dig +short CNAME selector1._domainkey.tudominio.com
selector1-tudominio-com._domainkey.tutenant.onmicrosoft.com.
Cómo interpretar lo que sale:
| Resultado | Qué significa |
|---|---|
TXT con v=DKIM1 y una p= larga | La clave está publicada. Falta confirmar que el servidor firma con ella. |
p= vacío | Clave revocada a propósito: las firmas con ese selector fallarán. |
| Sin respuesta | Ese selector no existe: o usas otro, o no has publicado la clave. |
| CNAME hacia tu proveedor | Normal en Microsoft 365 y en plataformas de envío. Sigue el CNAME y comprueba que al final hay un TXT. |
3. Si no sabes qué selector usas
El DNS no permite listar los selectores de un dominio. O lo sacas de la cabecera de un correo, o pruebas los más habituales:
for s in google selector1 selector2 default dkim mail k1 k2 s1 s2; do
echo "== $s"; dig +short TXT "$s._domainkey.tudominio.com"
done
google es el de Google Workspace, selector1 y selector2 los de Microsoft 365 y default el que suelen usar cPanel y Plesk. Que no salga nada en esta lista no demuestra que no tengas DKIM: algunas plataformas usan selectores propios.
4. Comprueba la longitud de la clave
Una clave de 1024 bits sigue funcionando, pero hoy lo recomendable es 2048. Puedes sacarla del propio registro con OpenSSL:
p=$(dig +short TXT google._domainkey.tudominio.com | tr -d '" ' | sed 's/.*p=//; s/;.*//')
{ echo '-----BEGIN PUBLIC KEY-----'; echo "$p" | fold -w 64; echo '-----END PUBLIC KEY-----'; } |
openssl pkey -pubin -noout -text | head -1
La salida será algo como Public-Key: (2048 bit). Si OpenSSL protesta, casi siempre es porque la clave está mal copiada en el DNS: falta un trozo o hay caracteres de más.
Cómo activar DKIM paso a paso
- Genera la clave en el servicio que envía. En Google Workspace está en la consola de administración, en Aplicaciones > Google Workspace > Gmail > Autenticar correo electrónico (elige 2048 bits). En Microsoft 365, en el portal de Microsoft Defender, dentro de las directivas de autenticación de correo, apartado DKIM (Microsoft cambia la ruta a menudo; busca «DKIM» en el portal). En cPanel está en «Entregabilidad de correo» y en Plesk, en la configuración de correo del dominio. En plataformas como Mailchimp, Brevo o SendGrid se llama «autenticar dominio».
- Publica el registro en el DNS donde de verdad está tu zona. Si el DNS lo gestiona el hosting, a veces se publica solo. Si está en Cloudflare o en el registrador, cópialo a mano. Comprueba con
dig NS tudominio.comquién manda. - Cuidado con el nombre del registro. Muchos paneles añaden el dominio por su cuenta: si escribes
google._domainkey.tudominio.com, acabas congoogle._domainkey.tudominio.com.tudominio.com. Escribe sologoogle._domainkey. - Cuidado con el valor. Una clave de 2048 bits pasa de 255 caracteres y hay que partirla en varias cadenas entre comillas; la mayoría de paneles lo hacen solos. No metas saltos de línea. En Cloudflare, los CNAME de DKIM van en modo «solo DNS» (nube gris).
- Comprueba desde fuera, cuando pase el TTL:
dig @1.1.1.1 +short TXT google._domainkey.tudominio.com. - Activa la firma en el proveedor. En Google Workspace hay que volver y pulsar «Empezar autenticación»: hasta entonces Google no firma con tu dominio aunque el DNS esté perfecto.
- Envía un correo de prueba y revisa las cabeceras como en el apartado anterior.
- Repite con cada servicio que envía en nombre de tu dominio: CRM, programa de facturación, newsletter, tienda online, formularios de la web. Cada uno necesita su propia clave y su propio selector.
Errores habituales
- Firma con el dominio del proveedor. Ves
dkim=pass header.d=sendgrid.neto similar. La firma es válida, pero no está alineada con tu From, así que no cuenta para DMARC. Solución: autentica tu dominio dentro de esa plataforma. - La web envía con la función de correo de PHP. Los formularios y avisos de WordPress salen sin firmar desde el servidor web. Configura un plugin de SMTP que envíe a través de tu cuenta de correo o de una plataforma de envío con el dominio autenticado.
- Clave publicada pero firma sin activar. Pasa mucho en Google Workspace: el DNS está bien y los correos siguen saliendo sin DKIM propio.
- Registro mal copiado. Comillas de más, espacios en medio de la clave o un trozo de
p=perdido. Compara carácter a carácter lo que dadigcon lo que te dio el proveedor. - El mensaje se modifica por el camino. Listas de distribución que añaden un pie, antivirus de salida que reescriben enlaces o servidores que tocan el asunto. En las cabeceras verás
dkim=fail (body hash did not verify). Hay que encontrar quién lo toca. - Rotar la clave borrando la antigua demasiado pronto. Publica la nueva con otro selector, cambia la firma, espera unos días y solo entonces revoca la anterior.
Para agencias: DKIM en todos los dominios de tus clientes
Con treinta clientes nadie revisa cabeceras cada mes, y DKIM se rompe sin hacer ruido: alguien cambia de proveedor de correo, migra el DNS o da de alta una herramienta nueva y nadie autentica el dominio. Los correos siguen saliendo, pero cada vez más van a spam.
Jeffrey revisa el correo de cada dominio cada 6 horas. Si el dominio recibe correo (tiene MX) y no encuentra una clave DKIM en ninguno de los 23 selectores más habituales (los de Google, Microsoft 365, cPanel y Plesk, Zoho, Proton, Fastmail, Mailchimp y Mandrill, entre otros), abre un aviso «No detectamos DKIM». Lo llamamos así a propósito: si el cliente usa un selector propio poco común, Jeffrey puede no verlo, y no te lo vamos a presentar como «roto». En la misma revisión mira el SPF y el DMARC, así que tienes las tres piezas del correo de cada cliente en un solo sitio.
Preguntas frecuentes
¿DKIM evita que mis correos vayan a spam?
Ayuda, pero no lo garantiza. Es una de las señales que usan Gmail, Outlook y compañía, junto con SPF, DMARC, la reputación de tu IP y de tu dominio y el propio contenido. Sin DKIM alineado lo tienes bastante más difícil, sobre todo si envías volumen.
¿Puedo tener varios registros DKIM en el mismo dominio?
Sí, uno por selector. Es lo normal: uno para el correo del día a día, otro para la newsletter, otro para el CRM. Lo que no debes hacer es reutilizar el mismo selector en dos servicios distintos.
¿Uso clave de 1024 o de 2048 bits?
2048 siempre que el proveedor lo permita. Las de 1024 bits se consideran ya demasiado cortas para el largo plazo. Si tu panel DNS no admite registros largos, cambia de panel antes que bajar la clave.
¿Por qué DKIM pasa y DMARC falla?
Casi siempre por alineación: la firma es válida, pero el dominio de d= no es el de tu From. Pasa con plataformas de envío sin el dominio autenticado. Lo vemos con detalle en cómo configurar DMARC paso a paso.
¿Cada cuánto debo cambiar la clave DKIM?
No hay una norma fija. Una vez al año es una buena costumbre, y siempre que sospeches que la clave privada se ha expuesto o cuando deje la empresa alguien con acceso al panel. Microsoft 365 facilita la rotación con sus dos selectores.