El pentest elogia la calificación A+ de SSL Labs. Dos semanas después, un cliente bancario ya no puede conectarse: TLS 1.2 ha sido deshabilitado y su proxy saliente todavía está negociando un conjunto de cifrado que su nginx rechaza. El equipo de infraestructura pegó un bloque de configuración que se encontró en un foro en 2019. Nadie sabe cómo volver a leerlo, y mucho menos actualizarlo cuando Mozilla o Let's Encrypt publican nuevas recomendaciones.
Configurar TLS no es optimizar un informe. Cumple dos promesas al mismo tiempo: intercambios sólidos contra ataques y compatibilidad real con los navegadores, aplicaciones móviles y servidores proxy corporativos de su audiencia.
Intermedio vs Moderno: el perfil adecuado, no el más estricto
Mozilla mantiene tres niveles de configuración. Sólo dos son de interés para la producción:
| Perfil | Cuando usarlo | Compromiso |
|---|---|---|
| Intermedio | Sitios públicos, SaaS, comercio electrónico | TLS 1.2+1.3, suites modernas, amplia compatibilidad |
| Moderno | API internas, clientes que usted controla | Prioridad TLS 1.3, menos legado |
| Antiguo / Obsoleto | — | Ya no se utiliza |
Para un sitio alojado por un anfitrión europeo con una audiencia variada, Intermedio es casi siempre el lugar adecuado para comenzar. El perfil moderno solo tiene sentido si conoce su base de clientes y nadie utiliza un proxy TLS empresarial anticuado.
El Generador de configuración SSL de Mozilla produce bloques listos para nginx, Apache o Caddy. Cópielos, pero documente quién los confirmó, cuándo y para qué versión del servidor.
Una configuración TLS que solo un proveedor de servicios externo entiende no será parcheada en el próximo incidente de OpenSSL.
TLS 1.2, TLS 1.3 y qué cortar sin dudarlo
TLS 1.3 simplifica la negociación y elimina muchas malas decisiones históricas. Esto es un progreso, no una razón para eliminar TLS 1.2 de la noche a la mañana.
En la práctica:
- Mantenga TLS 1.2 y 1.3 en un sitio público siempre que no tenga métricas de clientes (registros de protocolo de enlace, tickets de soporte, análisis del navegador).
- Corte sin piedad SSLv3, TLS 1.0, TLS 1.1, RC4, 3DES y cifrados de “exportación”.
- Prefiera ECDHE para Perfect Forward Secrecy y AES-GCM o ChaCha20 para cifrado simétrico.
Pruebe más allá de SSL Labs: un navegador real, un Android antiguo si su tráfico lo justifica e, idealmente, un cliente detrás de un proxy corporativo si vende B2B.
Certificados, cadena completa y renovación
Una configuración de cifrado perfecta no compensa un certificado mal servido. Errores comunes:
- Cadena incompleta — el servidor no envía al intermediario; algunos clientes muestran un error, otros no.
- Caducidad silenciosa: Let's Encrypt se renueva cada 90 días, pero solo si el desafío HTTP-01 o DNS-01 tiene éxito y si nginx se recarga después. Véase ACME: monitor de renovación.
- Comodín mal pensado: útil para diez subdominios, pero una clave robada abre todo el alcance. La renovación del comodín requiere DNS-01 automatizado.
Esté atento al vencimiento tres semanas antes de la fecha límite, no el día anterior. SSL Labs no reemplaza una alerta o cron de Prometheus que diga "certificados certbot".
Para elegir entre Let's Encrypt y certificado de pago según su contexto, la comparación Let's Encrypt o certificado de pago completa esta lectura.
Grapado HSTS, OCSP y encabezados vecinos
Estas configuraciones no reemplazan una buena configuración TLS, pero las complementan:
Grapado OCSP: el servidor adjunta la respuesta OCSP al protocolo de enlace, lo que acelera la verificación del lado del cliente. En nginx: ssl_stapling on; y verifique que la cadena sea correcta.
HSTS (Strict-Transport-Security): el navegador ya no prueba HTTP simple durante el tiempo especificado. Habilite includeSubDomains y precargue solo cuando HTTPS esté funcionando en todos los subdominios afectados. El HSTS prematuro hace que el retroceso de HTTP sea muy doloroso.
Los encabezados X-Content-Type-Options, Referrer-Policy o una Política de seguridad de contenido son parte del mismo proyecto de refuerzo, pero siguen siendo distintos de la elección de cifrado. No los confunda en un solo "fragmento de seguridad" copiado y pegado.
Compartido, VPS o CDN: ¿quién configura qué?
| Contexto | Control TLS | Responsabilidad |
|---|---|---|
| Compartido | Panel de host, pocos cifrados personalizados | Verifique TLS habilitado, certificado válido, redireccionamiento HTTPS |
| VPS/nube | nginx, Caddy, Apache: control total | Configuración de Mozilla + renovación + recarga después de renovar |
| CDN antes del origen | TLS visitante cancelado en CDN | Certificado de origen separado; no deje el origen HTTP en claro |
Si Cloudflare o una CDN cancelan TLS, es posible que la nota de SSL Labs de dominio público no describa lo que su origen sirve internamente. Verifique ambos extremos de la cadena.
Compare las ofertas en las que mantiene el control de nginx a través de nuestro directorio y la comparación.
La cumbre: la calificación A+ que rompe la producción
Esto es lo que las listas de verificación de “máxima seguridad” olvidan decir.
Ritmo esotérico mantenible: perfil Mozilla Intermedio, renovación monitoreada, prueba de compatibilidad antes de cortar TLS 1.2.
Decide y avanza sin puntos ciegos
Durante medio día, podrá recuperar la salud de TLS:
- Genere un perfil intermedio de Mozilla para su servidor web exacto.
- Reemplace el fragmento anterior: mantenga la configuración anterior en los comentarios durante una semana, mientras realiza la prueba.
- Verificar SSL Labs y un recorrido de usuario real (inicio de sesión, API, dispositivo móvil).
- Configure una alerta de vencimiento del certificado, no solo una verificación del tiempo de actividad de HTTP.
- Documente quién cambia la configuración, dónde y cómo recargar el servidor después de la renovación de ACME.
- Programe una revisión anual, idealmente después de un lanzamiento importante de Chrome o Firefox.
Para un sitio de exhibición simple, la guía Certificado SSL para un sitio de exhibición puede ser suficiente antes de abrir nginx. Para una pila más pesada, continúe con Renovación ACME tan pronto como Let's Encrypt esté implementado.
Preguntas frecuentes
¿Es suficiente TLS 1.3 por sí solo en producción?
Rara vez para un sitio público. TLS 1.2 + 1.3 con perfil Intermedio cubre la mayoría de los casos. Medir antes de cortar 1.2.
¿Dónde puedo encontrar una configuración actualizada?
Generador de configuración SSL de Mozilla: perfil intermedio para producción general, moderno si domina todos los clientes.
¿Debería habilitarse el grapado HSTS y OCSP?
Grapado sí si es compatible. HSTS después de la validación HTTPS en todos los hosts afectados, no el primer día de la migración.
¿Certificado comodín o un certificado por subdominio?
Comodín para simplificar las operaciones; Certificados separados para aislar el perímetro. Comodín automatizado = ACME DNS-01.
La configuración TLS correcta se actualiza cada año; no se mantiene ni una sola vez para gloria del informe de SSL Labs.
