Ir al contenido principal

¿MTA-STS no funciona? Guía completa de resolución de problemas

Por CaptainDNS
Publicado el 9 de febrero de 2026

Actualizado el 31 de julio de 2026

Resolución de problemas MTA-STS: diagnóstico y corrección de errores comunes
TL;DR
  • Verifica primero los tres fundamentos: registro DNS _mta-sts, archivo de política accesible en HTTPS y certificado TLS válido en el subdominio mta-sts
  • El error sts-policy-fetch-error significa que el archivo mta-sts.txt es inaccesible - verifica el alojamiento, el DNS y el certificado del subdominio
  • Los informes TLS-RPT identifican con precisión el tipo de fallo (certificate-expired, validation-failure, sts-webpki-invalid) para orientar el diagnóstico
  • En caso de emergencia con el modo enforce, vuelve inmediatamente a testing y actualiza el campo id del registro DNS

Has desplegado MTA-STS en tu dominio siguiendo todos los pasos: registro DNS publicado, archivo de política alojado, TLS-RPT activado. Sin embargo, los informes señalan fallos, el verificador muestra errores o, peor aún, se rechazan correos en modo enforce.

MTA-STS implica varios componentes que deben funcionar juntos: un registro DNS TXT, un archivo de política servido en HTTPS en un subdominio específico, certificados TLS válidos y patterns MX que correspondan exactamente a tus servidores. Un solo eslabón defectuoso basta para romper la cadena.

Esta guía de resolución de problemas cubre los errores más frecuentes, sus causas y los comandos para diagnosticarlos. Tanto si usas Microsoft 365, Google Workspace o Cloudflare para el alojamiento, encontrarás la solución a tu problema. Si aún no has desplegado MTA-STS, consulta primero nuestra guía completa MTA-STS.

Diagnóstico rápido: verificar tu configuración MTA-STS

Antes de buscar un problema específico, verifica estos tres fundamentos en orden. La mayoría de los problemas MTA-STS provienen de uno de estos tres puntos.

Paso 1: Verificar el registro DNS _mta-sts

El registro TXT en _mta-sts.captaindns.com debe existir y contener un valor válido:

dig TXT _mta-sts.captaindns.com +short
# Resultado esperado: "v=STSv1; id=20260208120000"

Problemas comunes:

  • Sin resultado → el registro no existe o aún no se ha propagado
  • v=STS1 en lugar de v=STSv1 → error tipográfico en la versión
  • Ausencia del campo id → campo obligatorio faltante

Paso 2: Verificar el archivo de política

El archivo debe ser accesible en la URL exacta https://mta-sts.captaindns.com/.well-known/mta-sts.txt:

curl -v https://mta-sts.captaindns.com/.well-known/mta-sts.txt

Verificaciones:

  • Código HTTP 200 (no 301, 302, 403 ni 404)
  • Content-Type text/plain (no text/html)
  • Contenido válido con version: STSv1, mode:, mx: y max_age:
  • Sin redirección HTTP → HTTPS (el servidor debe responder directamente en HTTPS)

Paso 3: Verificar el certificado TLS

El subdominio mta-sts.captaindns.com debe tener un certificado TLS válido:

openssl s_client -connect mta-sts.captaindns.com:443 -servername mta-sts.captaindns.com </dev/null 2>/dev/null | openssl x509 -noout -dates -subject

Verificaciones:

  • El certificado no ha expirado (notAfter en el futuro)
  • El certificado cubre mta-sts.captaindns.com (en el CN o SAN)
  • La cadena de certificados está completa (sin error unable to verify)

Checklist de diagnóstico MTA-STS: registro DNS, archivo de política y certificado TLS

Errores comunes y soluciones

Error "Policy not found" (sts-policy-fetch-error)

Es el error más frecuente en los informes TLS-RPT. Significa que el servidor remitente no pudo recuperar tu archivo de política.

CausaComando de diagnósticoSolución
Archivo ausentecurl -I https://mta-sts.captaindns.com/.well-known/mta-sts.txtCrear y alojar el archivo
DNS mal configuradodig A mta-sts.captaindns.com +shortVerificar el CNAME o registro A
Redirección HTTPcurl -v http://mta-sts.captaindns.com/.well-known/mta-sts.txtConfigurar HTTPS directamente
Certificado inválidocurl -vI https://mta-sts.captaindns.com/Renovar o corregir el certificado
Cloudflare en pausaVerificar el dashboard de CloudflareReactivar el proxy o el Worker

Error "Certificate mismatch" (certificate-host-mismatch)

El certificado TLS de un servidor MX no corresponde al nombre de host MX. No es el certificado del subdominio mta-sts, sino el del propio servidor MX.

# Verificar el certificado de un servidor MX
openssl s_client -connect captaindns-com.mail.protection.outlook.com:25 -starttls smtp -servername captaindns-com.mail.protection.outlook.com </dev/null 2>/dev/null | openssl x509 -noout -text | grep -A1 "Subject Alternative Name"

Con Microsoft 365 o Google Workspace: este problema no debería producirse, ya que Microsoft y Google gestionan los certificados de sus MX. Si lo ves, verifica que tus patterns MX en la política correspondan a tus MX reales.

Error "MX not covered by policy"

El servidor MX de tu dominio no corresponde a ningún pattern mx: en el archivo de política. A menudo se trata de un error de wildcard.

# Listar tus MX
dig MX captaindns.com +short

# Comparar con la política
curl -s https://mta-sts.captaindns.com/.well-known/mta-sts.txt | grep "^mx:"

Causas comunes:

SituaciónPattern incorrectoPattern correcto
Microsoft 365mx: mail.protection.outlook.commx: *.mail.protection.outlook.com
Google Workspacemx: *.google.com solo (no cubre ningún host aspmx)mx: smtp.google.com (MX único documentado desde 2023) o mx: aspmx.l.google.com + mx: *.aspmx.l.google.com + mx: *.googlemail.com (conjunto histórico)
MX personalizadoPattern wildcard demasiado restrictivoVerificar cada MX individualmente

Error "Certificate expired" (certificate-expired)

Un certificado TLS ha expirado en uno de tus servidores MX o en el subdominio mta-sts.

# Verificar la fecha de expiración del certificado mta-sts
echo | openssl s_client -connect mta-sts.captaindns.com:443 -servername mta-sts.captaindns.com 2>/dev/null | openssl x509 -noout -enddate

Si es el subdominio mta-sts: renueva el certificado a través de tu proveedor de alojamiento (Cloudflare lo hace automáticamente). Si es un servidor MX: con Microsoft 365 o Google Workspace, la renovación es automática. Para un MX autohospedado, renueva el certificado a través de Let's Encrypt o tu autoridad de certificación.

Error "Validation failure" (validation-failure)

La cadena de certificados está incompleta: falta el certificado raíz o un certificado intermedio.

# Probar la cadena completa
openssl s_client -connect mta-sts.captaindns.com:443 -servername mta-sts.captaindns.com </dev/null 2>&1 | grep "Verify return code"
# Resultado esperado: Verify return code: 0 (ok)

Si el código de retorno no es 0, instala los certificados intermedios faltantes en tu servidor.

Problemas específicos por proveedor

Microsoft 365

ProblemaCausaSolución
MX no cubiertoPattern sin wildcardUsar mx: *.mail.protection.outlook.com
Informes TLS-RPT vacíosM365 envía los informes con retrasoEsperar 48-72h tras la activación
Certificado MX con errorRaro (gestionado por Microsoft)Contactar con el soporte de Microsoft

Google Workspace

ProblemaCausaSolución
MX sin cubrirPolítica limitada al conjunto aspmx mientras el dominio publica smtp.google.com, o atajo *.google.com, cuyo comodín solo abarca una etiquetaDeclarar los MX realmente publicados: mx: smtp.google.com, o mx: aspmx.l.google.com + mx: *.aspmx.l.google.com + mx: *.googlemail.com
Informes TLS-RPT incompletosGoogle agrega en 24hEsperar el informe completo del día siguiente
Cambio de MX en GoogleMigración hacia nuevos MXVerificar los MX actuales con dig MX

Cloudflare Pages / Workers

ProblemaCausaSolución
404 en mta-sts.txtRuta incorrecta en el repositorioEl archivo debe estar en .well-known/mta-sts.txt
Certificado TLS ausenteDominio personalizado no configuradoAñadir mta-sts.captaindns.com en Custom Domains
Worker no respondeRuta mal configuradaVerificar que la ruta mta-sts.captaindns.com/* esté activa
Content-Type incorrectoWorker devuelve text/htmlForzar Content-Type: text/plain en la Response
DNS no resueltoCNAME faltanteAñadir el CNAME hacia el proyecto Pages o el AAAA 100:: para Workers

Leer e interpretar los informes TLS-RPT

Los informes TLS-RPT enviados por los proveedores de correo contienen los detalles de los fallos TLS. Aquí te explicamos cómo leerlos.

Estructura de un informe TLS-RPT

Un informe JSON típico contiene:

{
  "organization-name": "Google Inc.",
  "date-range": {
    "start-datetime": "2026-02-08T00:00:00Z",
    "end-datetime": "2026-02-08T23:59:59Z"
  },
  "policies": [{
    "policy": {
      "policy-type": "sts",
      "policy-domain": "captaindns.com"
    },
    "summary": {
      "total-successful-session-count": 150,
      "total-failure-session-count": 2
    },
    "failure-details": [{
      "result-type": "certificate-host-mismatch",
      "sending-mta-ip": "209.85.220.41",
      "receiving-mx-hostname": "captaindns-com.mail.protection.outlook.com",
      "failed-session-count": 2
    }]
  }]
}

Tabla de correspondencia de errores TLS-RPT

Código TLS-RPTSignificadoGravedadAcción
starttls-not-supportedEl MX no soporta STARTTLSCríticaActivar TLS en el servidor MX
certificate-host-mismatchEl certificado no corresponde al MXAltaVerificar el SAN del certificado
certificate-expiredCertificado expiradoAltaRenovar inmediatamente
certificate-not-trustedCertificado autofirmado o CA desconocidaAltaUsar un certificado de una CA reconocida
validation-failureCadena de certificados incompletaAltaInstalar los certificados intermedios
sts-policy-fetch-errorArchivo mta-sts.txt inaccesibleAltaVerificar el alojamiento
sts-policy-invalidContenido de la política inválidoAltaCorregir la sintaxis
sts-webpki-invalidCertificado del subdominio mta-sts inválidoAltaRenovar el certificado

Flujo de diagnóstico de errores TLS-RPT: del error a la solución

El modo enforce bloquea correos: ¿qué hacer?

Si has pasado a modo enforce y se rechazan correos legítimos, actúa inmediatamente:

1. Vuelta de emergencia al modo testing

Modifica el archivo de política:

version: STSv1
mode: testing
mx: *.mail.protection.outlook.com
max_age: 86400

2. Actualizar el registro DNS

Cambia el campo id para forzar a los servidores remitentes a volver a descargar la política:

_mta-sts.captaindns.com. 300 IN TXT "v=STSv1; id=20260208180000"

3. Tiempo de propagación

Los servidores remitentes almacenan en caché tu política durante el max_age anterior. Si tenías max_age: 2592000 (30 días), algunos servidores podrían no volver a descargar la política durante 30 días. Por eso se recomienda aumentar max_age progresivamente:

Fasemax_ageDuraciónUso
Testing inicial8640024 horasPermite una vuelta rápida
Testing avanzado6048007 díasTras 2 semanas sin errores
Enforce prudente6048007 díasPrimeras semanas en enforce
Enforce estable259200030 díasTras 1 mes en enforce sin problemas

Comandos de diagnóstico esenciales

Aquí tienes los comandos que debes tener a mano para diagnosticar cualquier problema MTA-STS:

# 1. Verificar el registro DNS MTA-STS
dig TXT _mta-sts.captaindns.com +short

# 2. Verificar el registro TLS-RPT
dig TXT _smtp._tls.captaindns.com +short

# 3. Recuperar el archivo de política
curl -s https://mta-sts.captaindns.com/.well-known/mta-sts.txt

# 4. Verificar las cabeceras HTTP del archivo de política
curl -I https://mta-sts.captaindns.com/.well-known/mta-sts.txt

# 5. Listar los servidores MX
dig MX captaindns.com +short

# 6. Verificar el certificado del subdominio mta-sts
echo | openssl s_client -connect mta-sts.captaindns.com:443 -servername mta-sts.captaindns.com 2>/dev/null | openssl x509 -noout -dates -subject

# 7. Probar la conexión STARTTLS en un MX
openssl s_client -connect captaindns-com.mail.protection.outlook.com:25 -starttls smtp -servername captaindns-com.mail.protection.outlook.com </dev/null 2>/dev/null | openssl x509 -noout -dates

Plan de acción recomendado

  1. Identifica el problema: Usa el verificador MTA-STS de CaptainDNS para un diagnóstico automático completo
  2. Verifica los tres fundamentos: Registro DNS, archivo de política, certificado TLS (en ese orden)
  3. Consulta los informes TLS-RPT: El campo result-type te indica exactamente qué está fallando
  4. Corrige el problema identificado: Sigue las soluciones de la sección correspondiente de esta guía
  5. Valida la corrección: Usa el validador de sintaxis MTA-STS para confirmar que la política es correcta
  6. Monitoriza durante 48h: Verifica que los informes TLS-RPT ya no señalen el error

Verifica tu configuración MTA-STS ahora: Usa nuestro verificador MTA-STS para diagnosticar tu dominio en cuestión de segundos.


FAQ

¿Por qué no se recupera mi política MTA-STS?

El archivo mta-sts.txt debe ser accesible en la URL exacta https://mta-sts.captaindns.com/.well-known/mta-sts.txt. Verifica que el subdominio mta-sts resuelve correctamente (CNAME o registro A), que el certificado TLS es válido y que el servidor responde con un código 200 y el Content-Type text/plain. Las redirecciones HTTP hacia HTTPS no son aceptadas por todos los clientes.

¿Qué significa el error 'MX no cubierto por la política'?

Tu servidor MX real no corresponde a ningún pattern mx: en el archivo de política. Por ejemplo, si tu MX es captaindns-com.mail.protection.outlook.com pero la política contiene mx: mail.protection.outlook.com (sin wildcard), el servidor remitente considera que el MX no está autorizado. Añade el wildcard: mx: *.mail.protection.outlook.com.

¿Cómo corregir un error de certificado TLS en MTA-STS?

Identifica primero qué certificado está causando el problema. Si es el certificado del subdominio mta-sts: renuévalo a través de tu proveedor de alojamiento (Cloudflare lo renueva automáticamente). Si es el certificado de un servidor MX: con Microsoft 365 o Google Workspace, se gestiona automáticamente. Para un MX autohospedado, verifica la cadena de certificados completa y la fecha de expiración.

¿Por qué el modo enforce bloquea correos?

En modo enforce, los servidores remitentes rechazan el envío si la política MTA-STS no puede cumplirse (certificado inválido, MX no cubierto, política inaccesible). Vuelve inmediatamente al modo testing, actualiza el campo id del registro DNS y analiza los informes TLS-RPT para identificar la causa exacta antes de volver a enforce.

¿Cómo volver al modo testing de emergencia?

Modifica el archivo mta-sts.txt reemplazando mode: enforce por mode: testing. Después actualiza el campo id del registro DNS TXT _mta-sts con una nueva marca de tiempo. Los servidores remitentes volverán a descargar la política y dejarán de rechazar correos. El plazo depende del max_age anterior.

¿Cómo leer un informe TLS-RPT?

Los informes TLS-RPT son archivos JSON enviados diariamente a la dirección especificada en tu registro _smtp._tls. El campo result-type indica el tipo de error (certificate-expired, sts-policy-fetch-error, etc.), receiving-mx-hostname identifica el servidor MX afectado y failed-session-count indica el número de fallos.

¿MTA-STS no funciona con Cloudflare Workers: qué verificar?

Verifica que la ruta mta-sts.captaindns.com/* está configurada en el Worker, que el DNS contiene un registro AAAA mta-sts apuntando a 100:: (proxied) y que el Worker devuelve el Content-Type text/plain; charset=utf-8. Prueba con curl -I https://mta-sts.captaindns.com/.well-known/mta-sts.txt para confirmar el código 200 y las cabeceras.

¿Cuánto tiempo hay que esperar para que las correcciones surtan efecto?

Los servidores remitentes almacenan en caché tu política durante el max_age. Si tenías max_age: 86400 (24h), la corrección será efectiva en un máximo de 24h. Si tenías max_age: 2592000 (30 días), algunos servidores podrían no ver la corrección durante 30 días. Por eso se recomienda mantener un max_age corto en fase de pruebas.

Glosario

  • MTA-STS: Mail Transfer Agent Strict Transport Security. Estándar RFC 8461 que impone el cifrado TLS para la recepción de correos.
  • TLS-RPT: SMTP TLS Reporting (RFC 8460). Mecanismo de informe diario sobre los éxitos y fallos de negociación TLS.
  • sts-policy-fetch-error: Código de error TLS-RPT que indica que el archivo de política mta-sts.txt no pudo ser recuperado por el servidor remitente.
  • max_age: Directiva de la política MTA-STS que indica la duración del almacenamiento en caché en segundos. Determina el plazo de propagación de las modificaciones.
  • STARTTLS: Extensión SMTP que permite cifrar la conexión entre servidores de correo. MTA-STS impone su uso con un certificado válido.

Guías de MTA-STS relacionadas

Fuentes

Artículos relacionados