HTTPS/SSL y seguridad del sitio web
¿Qué es HTTPS/SSL?
HTTPS (HTTP Secure) es un protocolo que cifra el intercambio de datos entre un sitio web y el navegador del visitante. Este cifrado se lleva a cabo mediante un certificado SSL/TLS del que dispone el sitio web; el certificado funciona como un documento digital que verifica la identidad del sitio ante el navegador. El icono del candado que aparece en la barra de direcciones del navegador indica que la conexión está cifrada y que el certificado es válido.
Los datos enviados a través de HTTP se transmiten en texto plano (plaintext); esto significa que cualquier tercero que se encuentre en la misma red (por ejemplo, una red Wi-Fi pública) podría leerlos. HTTPS cifra estos datos, de modo que solo el remitente y el destinatario puedan leerlos.
Los certificados SSL suelen tener una validez determinada (por ejemplo, un año) y deben renovarse cuando caducan; hoy en día, muchos proveedores de alojamiento web automatizan este proceso para que el certificado se renueve automáticamente, lo que reduce la necesidad de un seguimiento manual.
¿Por qué es importante?
HTTPS garantiza la protección de los datos de los usuarios (datos introducidos en formularios, información de sesión, datos de pago) frente a ataques de intermediario (man-in-the-middle). Google considera el uso de HTTPS como una señal de posicionamiento de peso leve, y los navegadores muestran la advertencia «No seguro» en los sitios HTTP, lo que afecta directamente a la confianza de los usuarios.
Un sitio web no seguro reduce la disposición de los visitantes a permanecer en él; en particular, los usuarios que rellenan formularios o realizan pagos pueden abandonar el sitio sin completar la transacción al ver la advertencia «No es seguro». Esto supone un problema de confianza que afecta directamente a la tasa de conversión.
Además, la mayoría de las funciones de los navegadores modernos (por ejemplo, los servicios de localización, las notificaciones o algunas API de pago) solo funcionan a través de HTTPS; un sitio que siga utilizando HTTP no podrá beneficiarse en absoluto de estas funciones y, desde el punto de vista técnico, se verá cada vez más limitado.
¿Cómo solucionarlo?
- Instala un certificado SSL válido en tu sitio web y configura la renovación automática para evitar que caduque.
- Redirige todas las solicitudes HTTP a la versión HTTPS mediante una redirección 301.
- Elimina las advertencias de contenido mixto (mixed content): asegúrate de que todas las imágenes, scripts y archivos CSS de la página se carguen a través de HTTPS; de lo contrario, el navegador podría marcar la página como «parcialmente segura».
- Si es posible, añade el encabezado HSTS (HTTP Strict Transport Security) para obligar al navegador a conectarse siempre al sitio a través de HTTPS.
- Reduce las cadenas de redireccionamiento (como HTTP → HTTPS → www → no-www, es decir, varios redireccionamientos consecutivos) a un solo paso; cada redireccionamiento adicional añade un pequeño retraso al tiempo de carga de la página.
- Comprueba que los recursos proporcionados por servicios de terceros (como una CDN de imágenes, un proveedor de formularios o un widget de chat) también se sirvan a través de HTTPS; estos suelen ser la fuente que pasa desapercibida en el problema del contenido mixto.
Ejemplo
# Ejemplo de .htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Mal ejemplo: olvidarse de actualizar las conexiones HTTP absolutas antiguas <img src="http://ejemplo.com/logo.png"> en la página; esto provoca una advertencia de contenido mixto en el navegador, aunque la página parezca segura en general.
Errores comunes
- Dejar abierta la versión HTTP sin desactivarla; de este modo, el sitio sigue siendo accesible tanto a través de HTTP como de HTTPS y el contenido se duplica en dos direcciones diferentes.
- Dejar en la página imágenes o scripts que se cargan a través de HTTP aunque la página esté bajo HTTPS (contenido mixto).
- Dejar que caduque el certificado SSL; en este caso, el navegador puede mostrar el sitio como totalmente inaccesible.
- Crear cadenas de redireccionamiento innecesarias que consten de varios pasos.
- Obtener el certificado solo para el dominio principal y dejar fuera de cobertura los subdominios (p. ej., blog.ejemplo.com).
- Seguir utilizando las antiguas direcciones HTTP en los enlaces internos (menú, pie de página, enlaces internos); esto provoca una redirección 301 innecesaria con cada clic y ralentiza ligeramente la carga de la página.
- Seguir haciendo referencia a las antiguas direcciones HTTP en el mapa del sitio y en las etiquetas canónicas; esto envía señales confusas al motor de búsqueda.
- Trasladar por error el certificado autofirmado utilizado en el entorno de desarrollo local (localhost) a la configuración del entorno de producción; los navegadores no consideran fiables este tipo de certificados.
- El informe de Seoraporu.co señala de forma prioritaria la falta de HTTPS o las advertencias de contenido mixto en la sección de hallazgos técnicos, ya que afectan tanto a la confianza como al rendimiento.