Configuración de security.txt para Cumplimiento del CRA: Una Guía de 10 Minutos

Una guía rapida y práctica para implementar security.txt para tus productos. Incluye plantillas, opciones de alojamiento y errores comunes a evitar.

Equipo CRA Evidence
Autor
6 de febrero de 2026
Actualizado 25 de febrero de 2026, 0:00:00 UTC
9 min de lectura
Configuración de security.txt para Cumplimiento del CRA: Una Guía de 10 Minutos
In this article

El CRA requiere un punto de contacto publicamente disponible para informes de vulnerabilidades. ¿La forma mas simple de cumplir? Un archivo security.txt.

Esta guía de 10 minutos te lleva de cero a conforme.

Resumen Ejecutivo

  • security.txt es un archivo estandarizado (RFC 9116) Qué indica a los investigadores Cómo reportar vulnerabilidades
  • Colocalo en /.well-known/security.txt en tu presencia web
  • Campos mínimos requeridos: Contact, Expires
  • Recomendado: Tambien incluye Preferred-Languages, Policy, Canonical
  • Para productos sin interfaces web, incluye la URL en la Documentación

¿Qué Es security.txt?

security.txt es un estandar RFC (RFC 9116) Qué proporciona una forma legible por maquinas y por humanos de publicar informacion de contacto de seguridad.

Por qué importa para el CRA:

  • El CRA requiere puntos de contacto para reporte de vulnerabilidades
  • security.txt es el metodo estandar de la industria
  • Las herramientas automatizadas y los investigadores lo buscan
  • Muestra a los reguladores Qué has implementado canales de divulgación adecuados

El security.txt mínimo Viable

Aqui esta el archivo conforme mas simple:

Contact: mailto:security@tuempresa.com
Expires: 2027-12-31T23:59:59.000Z

Eso es todo. Dos lineas. Tecnicamente estas conforme.

Pero hagamoslo mejor.

El security.txt Recomendado

Un security.txt completo y profesional:

# Informacion de Contacto de Seguridad para [Tu Empresa]
# https://www.tuempresa.com/.well-known/security.txt

Contact: mailto:security@tuempresa.com
Contact: https://tuempresa.com/security/report
Expires: 2027-01-01T00:00:00.000Z
Encryption: https://tuempresa.com/.well-known/pgp-key.txt
Preferred-Languages: es, en
Canonical: https://tuempresa.com/.well-known/security.txt
Policy: https://tuempresa.com/security/disclosure-policy
Hiring: https://tuempresa.com/careers/security
Acknowledgments: https://tuempresa.com/security/thanks

Explicacion Campo por Campo

Contact (Requerido)

Cómo los investigadores deben contactarte.

Contact: mailto:security@tuempresa.com
Contact: https://tuempresa.com/security/report

Mejores practicas:

  • Incluye tanto email Cómo formulario web
  • Usa un alias de equipo, no email personal
  • Los formularios web proporcionan entrada estructurada
  • Se permiten multiples lineas Contact

Expires (Requerido)

Cuando este archivo deberia considerarse obsoleto.

Expires: 2027-01-01T00:00:00.000Z

Mejores practicas:

  • Establece 6-12 meses en el futuro
  • Usa formato ISO 8601 con zona horaria
  • Pon un recordatorio de calendario para actualizar antes del vencimiento
  • Los archivos obsoletos te hacen parecer sin mantenimiento

Encryption (Recomendado)

Clave PGP para informes cifrados.

Encryption: https://tuempresa.com/.well-known/pgp-key.txt

Mejores practicas:

  • Aloja tu clave publica en la URL especificada
  • Usa una clave de equipo, no clave individual
  • Incluye huella de clave en comentarios
  • Mantiene la clave privada segura (HSM si es posible)

Preferred-Languages (Recomendado)

Idiomas en los Qué tu equipo puede manejar informes.

Preferred-Languages: es, en

Mejores practicas:

  • Lista idiomas Qué tu equipo de seguridad realmente habla
  • El ingles normalmente deberia incluirse
  • Ordena por preferencia
  • No listes idiomas en los Qué realmente no puedes responder

Canonical (Recomendado)

La ubicacion autorizada de este archivo.

Canonical: https://tuempresa.com/.well-known/security.txt

Por qué importa:

  • Previene suplantacion
  • Clarifica si el archivo esta duplicado
  • Ayuda a los investigadores a verificar autenticidad

Policy (Recomendado)

Enlace a tu política completa de divulgación de vulnerabilidades.

Policy: https://tuempresa.com/security/disclosure-policy

Mejores practicas:

  • Enlaza a tu Política CVD completa
  • Asegura Qué la pagina existe y es accesible
  • Mantiene la política y security.txt sincronizados

Acknowledgments (Opcional)

Enlace a tu Salon de la Fama de seguridad.

Acknowledgments: https://tuempresa.com/security/thanks

Por qué incluirlo:

  • Muestra Qué valoras a los investigadores
  • Fomenta informes (el reconocimiento es motivador)
  • Demuestra programa de seguridad maduro

Hiring (Opcional)

Enlace a ofertas de trabajo de seguridad.

Hiring: https://tuempresa.com/careers/security

Por qué incluirlo:

  • Los investigadores a menudo hacen buenas contrataciones
  • Muestra inversion en seguridad
  • Buena voluntad de la comunidad

Configuración Paso a Paso

Paso 1: Crear el Archivo

Crea un archivo de texto plano con tu informacion:

# Crear el archivo
cat > security.txt << 'EOF'
# Informacion de Contacto de Seguridad para TuEmpresa
# Ultima Actualizacion: 2026-01-15

Contact: mailto:security@tuempresa.com
Contact: https://tuempresa.com/security/report
Expires: 2027-01-15T00:00:00.000Z
Preferred-Languages: es, en
Canonical: https://tuempresa.com/.well-known/security.txt
Policy: https://tuempresa.com/security/policy
EOF

Paso 2: Elegir Ubicación de Alojamiento

El archivo debe estar en /.well-known/security.txt

Para sitios web:

https://tuempresa.com/.well-known/security.txt

Para productos con interfaces web:

https://producto.local/.well-known/security.txt
https://192.168.1.1/.well-known/security.txt

Paso 3: Configurar Tu Servidor Web

Nginx:

location /.well-known/security.txt {
    alias /var/www/security.txt;
    default_type text/plain;
}

Apache:

Alias /.well-known/security.txt /var/www/security.txt
<Files "security.txt">
    ForceType text/plain
</Files>

Express.js:

const express = require('express');
const app = express();

app.get('/.well-known/security.txt', (req, res) => {
    res.type('text/plain');
    res.sendFile(__dirname + '/security.txt');
});

Alojamiento estatico (S3, GitHub Pages, etc.): Solo coloca el archivo en el directorio .well-known.

Paso 4: Verificar

Comprueba Qué tu archivo es accesible:

curl https://tuempresa.com/.well-known/security.txt

Usa un validador en linea:

Paso 5: Firmar (Opcional pero Recomendado)

Firma digitalmente tu security.txt para autenticidad:

# Firmar con GPG
gpg --clearsign security.txt

# Esto crea security.txt.asc
# Renombrar y desplegar
mv security.txt.asc security.txt

El archivo firmado se ve asi:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Contact: mailto:security@tuempresa.com
Expires: 2027-01-01T00:00:00.000Z
...

-----BEGIN PGP SIGNATURE-----
[datos de firma]
-----END PGP SIGNATURE-----

Para Productos Sin Interfaces Web

No todos los productos tienen servidores web. Aqui esta Cómo manejar security.txt:

Dispositivos Embebidos

Opcion 1: Si el dispositivo tiene cualquier interfaz web (pagina de Configuración, pagina de estado):

  • Aloja security.txt en esa interfaz
  • http://ip-dispositivo/.well-known/security.txt

Opcion 2: Si no hay interfaz web:

  • Incluye la URL en la Documentación del producto
  • Referencia tu security.txt corporativo
  • Anade a la Guía de Inicio Rapido: "Reporta problemas de seguridad en: https://empresa.com/security"

Software de Escritorio

  • Incluye contacto de seguridad en Ayuda > Acerca de
  • Anade al README/Documentación
  • Referencia la URL del security.txt corporativo

Apps Moviles

  • Incluye en Configuración de la app > Acerca de > Seguridad
  • Enlaza al security.txt corporativo
  • Anade a la descripcion de la tienda de apps

Referencia en Documentación

Anade a la Documentación de tu producto:

## Reporte de Vulnerabilidades de Seguridad

Para reportar vulnerabilidades de seguridad en este producto:

- Email: security@tuempresa.com
- Web: https://tuempresa.com/security/report
- Política: https://tuempresa.com/security/policy

Nuestro archivo security.txt: https://tuempresa.com/.well-known/security.txt

Errores Comunes

Archivo Vencido

Problema: La fecha de Expires está en el pasado.

Expires: 2024-01-01T00:00:00.000Z  # ¡VENCIDO!

Solución: Establece una fecha futura. Anade recordatorio de calendario.

Ubicación Incorrecta

Problema: Archivo en ruta incorrecta.

/security.txt           # Incorrecto
/security/security.txt  # Incorrecto
/.well-known/security.txt  # Correcto

Solución: Usa la ubicación estandar.

Formato Invalido

Problema: Formato de fecha incorrecto, campos faltantes.

Expires: 1 de enero de 2027  # Formato incorrecto
Contact: equipo de seguridad    # No es una URI valida

Solución: Usa fechas ISO 8601, URIs mailto: o https:.

Enlaces Rotos

Problema: URLs de Policy o Acknowledgments devuelven 404.

Solución: Verifica Qué todos los enlaces funcionan. Comprueba despues de despliegues.

Email Personal

Problema: Usar email de individuo en lugar de alias de equipo.

Contact: mailto:juan.perez@tuempresa.com  # Malo

Solución: Usa alias de equipo Qué sobreviva cambios de personal.

Sin HTTPS

Problema: Usar HTTP en lugar de HTTPS para enlaces Canonical/Policy.

Solución: Siempre usa HTTPS para URLs relacionadas con seguridad.

Lista de Verificación de Validación

LISTA DE VERIFICACIÓN DE VALIDACIÓN SECURITY.TXT

CAMPOS REQUERIDOS:
[ ] Campo Contact presente (mailto: o https:)
[ ] Campo Expires presente (fecha futura, ISO 8601)

CAMPOS RECOMENDADOS:
[ ] Preferred-Languages incluido
[ ] URL Canonical coincide con ubicacion real
[ ] Enlace Policy funciona y apunta a Política CVD
[ ] Enlace de clave Encryption funciona (si incluido)

ALOJAMIENTO:
[ ] Archivo en /.well-known/security.txt
[ ] Accesible via HTTPS
[ ] Content-Type: text/plain
[ ] No requiere autenticacion

VERIFICACIÓN:
[ ] Prueba curl exitosa
[ ] Validador en linea pasa
[ ] Todos los enlaces resuelven (sin 404s)
[ ] Firma PGP valida (si firmado)

MANTENIMIENTO:
[ ] Recordatorio de calendario establecido antes de fecha Expires
[ ] Proceso de actualizacion documentado
[ ] Monitorizacion de accesibilidad

Cronograma de Mantenimiento

Tarea Frecuencia
Verificar fecha de vencimiento Mensual
Verificar Qué enlaces funcionan Mensual
Actualizar clave PGP (si vence) Segun necesidad
Revisar direcciones de contacto Trimestral
Verificación completa de validación Antes del vencimiento

Integración con Cumplimiento del CRA

Tu security.txt apoya el cumplimiento del CRA al:

  1. Proporcionar contacto descubrible: Reguladores e investigadores pueden encontrarte
  2. Demostrar proceso: Muestra Qué tienes manejo de vulnerabilidades
  3. Habilitar CVD: Enlaza a tu política de divulgación
  4. Apoyar documentación: Referencia en expediente tecnico

Incluye en tu documentación tecnica:

Puntos de Contacto para Reporte de Vulnerabilidades:
- security.txt: https://empresa.com/.well-known/security.txt
- Email: security@empresa.com
- Formulario Web: https://empresa.com/security/report
- Política: https://empresa.com/security/policy

Ejemplo Completo

Aqui hay un security.txt listo para produccion:

# ============================================================
# SECURITY.TXT para Productos AcmeTech
# https://acmetech.es/.well-known/security.txt
# ============================================================
#
# Si has encontrado una vulnerabilidad de seguridad en cualquier
# producto de AcmeTech, por favor reportala usando los metodos
# de contacto a continuacion.
#
# Apreciamos la Divulgación responsable y reconoceremos tu
# contribucion si lo deseas.
#
# ============================================================

# Metodos de contacto principales (orden preferido)
Contact: https://acmetech.es/security/report
Contact: mailto:security@acmetech.es

# Este archivo vence (actualizar antes de esta fecha)
Expires: 2027-06-01T00:00:00.000Z

# Para comunicaciones cifradas
Encryption: https://acmetech.es/.well-known/pgp-key.txt

# Idiomas Qué maneja nuestro equipo de seguridad
Preferred-Languages: es, en, de

# Ubicacion autorizada de este archivo
Canonical: https://acmetech.es/.well-known/security.txt

# Nuestra política de divulgación de vulnerabilidades
Policy: https://acmetech.es/security/disclosure-policy

# Investigadores de seguridad Qué nos han ayudado
Acknowledgments: https://acmetech.es/security/hall-of-fame

# Unete a nuestro equipo de seguridad
Hiring: https://acmetech.es/careers#security

# ============================================================
# Ultima Actualizacion: 2026-01-15
# Contacta security@acmetech.es con preguntas sobre este archivo
# ============================================================

Consejo: Configurar security.txt toma 10 minutos y satisface un requisito clave del CRA para el contacto publicado de vulnerabilidades. Hazlo hoy.

Importante: Tu security.txt debe incluir un método de contacto, un idioma preferido y una fecha de vencimiento. Debe estar en /.well-known/security.txt en tu dominio.

Guías Relacionadas

Cómo Ayuda CRA Evidence

CRA Evidence puede:

  • Generar security.txt: Pre-rellenado con los detalles de tu organización
  • Monitorizar vencimiento: Alertar antes de Qué tu archivo venza
  • Validar formato: Verificar errores comunes
  • Rastrear actualizaciones: Pista de auditoria de cambios

Configura tu security.txt con app.craevidence.com.


Este articulo es solo para fines informativos y no constituye asesoramiento legal. Para orientacion especifica sobre cumplimiento, consulta con asesores legales cualificados.

Temas tratados en este artículo

Compartir este artículo

Artículos Relacionados

Does the CRA apply to your product?

Responde 6 preguntas sencillas para saber si tu producto entra en el ámbito de la Ley de Resiliencia Cibernética de la UE. Obtén tu resultado en menos de 2 minutos.

¿Listo para lograr el cumplimiento del CRA?

Comienza a gestionar tus SBOMs y documentación de cumplimiento con CRA Evidence.