Una firma válida sigue necesitando una política
DKIM demuestra que un mensaje no ha sido modificado. DMARC determina qué ocurre con los correos que no llevan una firma válida de tu dominio.
Generador de DMARC →Crea un par de claves RSA o Ed25519 en tu navegador, obtén el registro DNS en el formato que acepta tu panel y comprueba la clave una vez publicada. La clave privada nunca sale de esta página. Gratis, sin registro.
DKIM (DomainKeys Identified Mail, RFC 6376) permite que un servidor de correo firme cada mensaje saliente con una clave privada. La clave pública correspondiente se publica como registro TXT en selector._domainkey.example.com. Un receptor la obtiene, verifica la firma y así sabe que el mensaje viene realmente de un servidor que tiene tu clave y que no se modificó por el camino.
El generador crea el par de claves con la criptografía del propio navegador (WebCrypto), escribe el registro DNS y guarda la clave privada en esta página hasta que la descargues. Nada de la clave se envía a nuestro servidor.
Microsoft 365, Google Workspace, Brevo, Mailchimp, SendGrid, Amazon SES y casi todos los servicios alojados crean el par de claves ellos mismos y te muestran el registro que debes publicar, a menudo como un CNAME que apunta a su propio DNS. Usa su registro; una clave creada aquí no les serviría, porque nunca verían la mitad privada.
Postfix con OpenDKIM, rspamd, Exim, un servidor de correo en un contenedor, una herramienta de newsletter autoalojada o una aplicación que firma su propio correo: todos necesitan un par de claves que tú creas y un registro que tú publicas. Para eso es este generador. La mayoría de estos programas leen la clave privada como archivo PEM, el formato que descargas aquí.
1. Elige un selector y un tipo de clave. El selector es un nombre que eliges tú, por ejemplo el mes actual como 202610. Aparece en cada firma como s= y permite tener varias claves a la vez. RSA 2048 es el tipo adecuado para casi todo el mundo.
2. Genera, guarda, configura. Pulsa el botón para generar el par de claves, descarga la clave privada y ponla en el servidor de correo. Configura el servidor para que firme tu dominio con ese selector. Mantén el archivo en secreto: quien lo tenga puede firmar correo en tu nombre.
3. Publica y comprueba. Añade el registro TXT, espera a que sea visible, escribe arriba el dominio y el selector y pulsa «Cargar registro publicado». La comprobación lee la clave del DNS e indica su tipo y su longitud exacta.
| Campo | Valor |
|---|---|
| Tipo | TXT |
| Nombre / Host | 202610._domainkey, es decir, el selector seguido de ._domainkey; el panel añade el dominio |
| Valor | v=DKIM1; k=rsa; p=MIIBIjANBg... |
Una clave de 2048 bits produce un valor de unos 410 caracteres. Una cadena TXT admite como máximo 255, así que el DNS guarda los valores más largos en varias cadenas que el receptor vuelve a unir. Los buenos paneles lo hacen solos. Para los demás, el generador ofrece el mismo registro en tres formas:
Si un panel rechaza incluso la forma dividida, limita la longitud total. Entonces RSA 1024 es la salida que todos los receptores siguen aceptando. Pero cambia de proveedor DNS en cuanto puedas.
| Etiqueta | Significado |
|---|---|
v=DKIM1 |
Versión. Opcional según la norma, pero muchas herramientas la esperan. |
k=rsa o k=ed25519 |
Tipo de clave. Si falta la etiqueta, se asume rsa. |
p= |
La clave pública en Base64. Un p= vacío significa que la clave está revocada. |
t=y |
Prueba: los receptores tratan una firma no válida como un mensaje sin firmar. |
t=s |
Estricto: la clave solo puede firmar para este dominio exacto, no para sus subdominios. |
h= |
Algoritmos de hash permitidos. Omítela; todo el mundo usa sha256. |
RSA 2048 es el estándar: lo aceptan todos los receptores, se considera seguro y solo la longitud del registro da a veces problemas. RSA 1024 es el mínimo que los receptores aún aceptan; úsalo solo si el DNS te obliga. Ed25519 (RFC 8463) es moderno y corto, unos 60 caracteres, pero todavía no lo verifican todos los receptores. Publícalo como segunda clave con su propio selector junto a una clave RSA, nunca solo.
Si buscas una clave existente: Google Workspace usa google, Microsoft 365 selector1 y selector2, SendGrid s1 y s2, Mailchimp k2 y k3. Amazon SES usa tres tokens aleatorios que encuentras en la consola de SES. El Email Security Check prueba estos nombres automáticamente.
El mismo par de claves puede crearse directamente en el servidor, de modo que la clave privada nunca pase por un ordenador de escritorio.
RSA 2048:
openssl genrsa -out 202610.private.pem 2048
openssl rsa -in 202610.private.pem -pubout -outform der | openssl base64 -A
El segundo comando muestra el valor que va detrás de p=.
Ed25519:
openssl genpkey -algorithm ed25519 -out 202610.ed25519.pem
openssl pkey -in 202610.ed25519.pem -pubout -outform der | tail -c 32 | openssl base64 -A
Para Ed25519, DKIM publica la clave en bruto de 32 bytes, no la estructura completa; por eso se extraen los últimos 32 bytes.
Con rspamd basta un comando: rspamadm dkim_keygen -s 202610 -d example.com -b 2048 muestra la clave y el registro a la vez.
Una clave que nunca cambia puede filtrarse sin que nadie lo note. Rótala cada seis a doce meses, y de inmediato si un servidor que la tenía ha sido comprometido. Con selectores, la rotación es sencilla: crea una clave nueva con un selector nuevo, publica su registro, cambia el servidor de correo al nuevo selector y deja el registro antiguo una semana en el DNS para que los mensajes que aún están en tránsito se puedan verificar. Después publica el selector antiguo con un p= vacío, lo que indica a los receptores que la clave está revocada.
Nombrar los selectores según el mes en que se crearon, como propone el generador, deja claro de un vistazo qué clave está en uso.
No. El par de claves se crea con WebCrypto en tu navegador y solo existe en esta pestaña. «Cargar registro publicado» lee la clave pública del DNS, que de todos modos es pública. Descarga la clave privada antes de cerrar o recargar la página, porque después no se puede recuperar.
No. Ambos crean la clave por su cuenta. En Microsoft 365 publicas dos registros CNAME llamados selector1 y selector2 y activas la firma en el portal de Defender; en Google Workspace generas la clave en la consola de administración, en la autenticación de Gmail, y publicas el registro TXT que aparece allí.
RSA 2048. Se acepta en todas partes y se considera segura. 1024 bits es el mínimo y solo compensa si tu panel DNS no puede guardar un valor más largo. Más de 2048 aporta poco, y algunos receptores no manejan bien las claves de 4096 bits.
Un nombre que eliges tú y que indica a los receptores la clave correcta. Una firma lleva s=202610 y el receptor consulta 202610._domainkey.example.com. Así, distintos servicios, y también la clave antigua y la nueva, pueden tener cada uno su selector sin estorbarse.
Cada seis a doce meses, y de inmediato si un servidor con la clave ha sido comprometido. Publica primero la clave nueva con un selector nuevo, cambia la firma y mantén el registro antiguo alrededor de una semana antes de revocarlo.
Usa la forma dividida, que reparte el valor en cadenas de 255 caracteres como máximo entre comillas. Si el panel también la rechaza, limita la longitud total; entonces genera una clave RSA 1024, cuyo valor ronda los 220 caracteres.
Las claves RSA se crean con RSASSA-PKCS1-v1_5 y SHA-256 a 2048 o 1024 bits, y las Ed25519 con la implementación Ed25519 del navegador, si existe; los navegadores más antiguos no la ofrecen y el generador lo indica. La clave privada se exporta como PEM PKCS#8, que leen OpenDKIM, rspamd y Exim. La clave pública se publica como SubjectPublicKeyInfo para RSA y como clave en bruto de 32 bytes para Ed25519, tal como exige el RFC 8463.
«Cargar registro publicado» pide a nuestro resolver el registro TXT del selector que has escrito y aplica el validador DKIM del Email Security Check. Para RSA indica la longitud exacta del módulo, leída de la propia clave y no estimada a partir de la longitud del texto.
La herramienta no puede ver si tu servidor firma de verdad. Envía un mensaje a una dirección que controles y busca dkim=pass en la cabecera Authentication-Results, o vigila los informes de DMARC.