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.
In this article
- Resumen Ejecutivo
- ¿Qué Es security.txt?
- El security.txt mínimo Viable
- El security.txt Recomendado
- Explicacion Campo por Campo
- Configuración Paso a Paso
- Para Productos Sin Interfaces Web
- Reporte de Vulnerabilidades de Seguridad
- Errores Comunes
- Lista de Verificación de Validación
- Cronograma de Mantenimiento
- Integración con Cumplimiento del CRA
- Ejemplo Completo
- Cómo Ayuda CRA Evidence
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.txten 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:
- Proporcionar contacto descubrible: Reguladores e investigadores pueden encontrarte
- Demostrar proceso: Muestra Qué tienes manejo de vulnerabilidades
- Habilitar CVD: Enlaza a tu política de divulgación
- 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
- Divulgación Coordinada de Vulnerabilidades Bajo el CRA: Plantilla de Política
- Notificación de Vulnerabilidades a ENISA: El Requisito de 24 Horas
- Guía del Expediente Técnico CRA (Anexo VII)
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
Artículos Relacionados
¿Son las Cámaras Inteligentes Productos Importantes bajo...
Las cámaras de seguridad inteligentes están clasificadas como Productos...
11 minCybersecurity Act 2 de la UE: Prohibiciones en la Cadena...
La UE propuso sustituir el Cybersecurity Act por completo. Qué cambió, qué...
11 minClasificación de Productos CRA: ¿Tu Producto es Por...
Una Guía práctica para determinar la categoria CRA de tu producto. Incluye...
12 minDoes 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.