Tras realizar una auditoría de seguridad, es común encontrarse con alertas de criticidad media/alta relacionadas con la configuración SSL del servidor. En este artículo, explico cómo abordar estos problemas cuando estás en un hosting compartido (solo acceso al cPanel o similar) y no tienes acceso root al sistema.
#El Problema: Reporte de Seguridad TLS/SSL
El escáner de seguridad arrojó el siguiente resultado preocupante:
Criticidad: Media
Descripción: Configuraciones Erróneas de TLS/SSL.
Problemas Específicos:
- Vulnerable a OpenSSL CCS (CVE-2014-0224)
- Renegociación Segura no soportada
- Falta de grapado OCSP (OCSP Stapling)
- Falta de cabecera HSTS#Análisis: ¿Qué puedo arreglar yo y qué no?
Es crucial distinguir entre responsabilidades:
- Responsabilidad del Hosting (Nivel Servidor):
- OpenSSL (CVE-2014-0224): Esto es una vulnerabilidad en la librería del sistema operativo del servidor. Tú no puedes actualizarla desde WordPress ni cPanel.
- Protocolos (TLS 1.0/1.1) y Ciphers: La configuración de Apache/Nginx es global.
- OCSP Stapling: Configuración del servidor web.
- Responsabilidad del Sitio (Tuya):
- HSTS (HTTP Strict Transport Security): Puedes y debes forzarlo desde tu sitio.
- Cabeceras de Seguridad (XSS, Clickjacking): Puedes implementarlas tú mismo.
#Paso 1: Contactar al Proveedor de Hosting
Para los problemas de nivel servidor (especialmente la vulnerabilidad antigua de OpenSSL), debes abrir un ticket de soporte. Aquí tienes la plantilla que utilicé:
Asunto: URGENTE: Vulnerabilidad OpenSSL (CVE-2014-0224) detectada
Hola,
He realizado una auditoría de seguridad y se han detectado vulnerabilidades críticas en el servidor que no puedo corregir desde cPanel:
1. Vulnerabilidad OpenSSL CCS (CVE-2014-0224).
2. Uso de protocolos obsoletos (SSLv3/TLS 1.0).
3. Falta de OCSP Stapling.Solicito que actualicen la librería OpenSSL y deshabiliten los protocolos inseguros en la configuración del servidor web.
Gracias.
#Paso 2: Implementar HSTS y Cabeceras de Seguridad (La Solución Técnica)
Para solucionar la falta de HSTS y mejorar la seguridad, la mejor práctica es usar el archivo .htaccess en lugar de PHP. Esto es más rápido y protege archivos estáticos (imágenes, JS) que PHP no procesa.
Accede a tu cPanel > Administrador de Archivos, edita el archivo .htaccess en public_html y añade esto al principio:
<IfModule mod_headers.c>
# SEGURIDAD: Cabeceras HTTP estrictas
# 1. HSTS (HTTP Strict Transport Security)
# Fuerza a los navegadores a usar HTTPS durante 1 año (31536000 segundos)
# Incluye subdominios y permite preloading
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
# 2. Protección contra XSS (Cross-Site Scripting)
# Bloquea la carga de la página si el navegador detecta un ataque
Header always set X-XSS-Protection "1; mode=block"
# 3. Protección contra Clickjacking
# Evita que tu sitio sea cargado dentro de un iframe en otro dominio
Header always set X-Frame-Options "SAMEORIGIN"
# 4. Protección MIME-Type
# Evita que el navegador "adivine" tipos de archivos ejecutables
Header always set X-Content-Type-Options "nosniff"
# 5. Política de Referrer
# Protege la privacidad del usuario al navegar a otros sitios
Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>#Paso 3: Limpieza de código (Evitar conflictos)
Si anteriormente tenías funciones en functions.php para enviar estas cabeceras, debes eliminarlas para evitar conflictos o cabeceras duplicadas.
Busca y elimina funciones como esta en tu functions.php:
// ELIMINAR ESTO si ya usas .htaccess
/*
function security_headers() {
header('Strict-Transport-Security: ...'); // BORRAR
}
add_action('send_headers', 'security_headers');
*/#Resultado Final
Con estos cambios logramos:
- ✅ HSTS Activo: El escáner ya no reportará la falta de «Renegociación Segura» o HSTS.
- ✅ Protección Total: Al usar
.htaccess, protegemos todo el tráfico, no solo el de WordPress. - ✅ Rendimiento: Apache procesa las cabeceras más rápido que PHP.
- ✅ Gestión Correcta: Delegamos al hosting lo que es su responsabilidad (OpenSSL) y asumimos el control de lo que es nuestro (Cabeceras).