Cómo hacer que HTTPS sea la primera solicitud a través de una VPN
El modo solo HTTPS, los marcadores HTTPS reales y HSTS son tres soluciones diferentes. Revíselos en orden para que la primera solicitud esté cifrada, no redirigida.
Un navegador que escribe http:// primero y llega a https:// después de una redirección ya ha enviado una solicitud clara, y una VPN no cambia eso. El túnel protege el tramo desde el cliente hasta el nodo de salida; no cifra nada por encima de la capa de transporte, por lo que un observador entre la salida y el origen aún ve el salto de texto sin formato. Hacer que HTTPS sea la primera solicitud es un cambio del lado del cliente con tres partes: una dirección HTTPS real, el modo de actualización del navegador y la política propia del sitio. Los pasos a continuación son el orden que yo uso, cada uno con el cheque que le indica si fue necesario.
Paso 1: confirma cuál es realmente la primera solicitud
Antes de cambiar algo, mira lo que envía el navegador. Abra el panel de red con la página recargada desde un caché frío y lea la primera fila: si el esquema es http y el estado es 301 o 308, todo lo que sigue a esa fila es una segunda solicitud. curl -sS -o /dev/null -w '%{http_code} %{url_effective}\n' http://example.com reproduce la misma secuencia fuera del navegador e imprime la URL en la que terminaste.
Hay dos resultados posibles y necesitan soluciones diferentes. Si el sitio ofrece HTTPS en el mismo host, la solución es dejar de publicar el formulario HTTP: actualice el marcador, el enlace wiki, el acceso directo del escritorio y la plantilla de correo electrónico en la que hacen clic las personas. Si el sitio no ofrece HTTPS en absoluto, ninguna configuración del navegador lo creará y la respuesta honesta es que el destino es el problema. No omita el segundo caso con una excepción, porque una excepción de certificado en una página de cuenta convierte un problema de transporte en un problema de credenciales. Anota en qué caso te encuentras antes de tocar una configuración.
Paso 2: active el modo solo HTTPS del navegador
El modo de actualización es la segunda parte y los modos no son intercambiables. Comprueba lo que hace el tuyo antes de habilitarlo: actualizar de forma silenciosa, actualizar con una advertencia o negarse a cargar.
En Firefox, los controles se encuentran detrás de about:config y en la página de configuración de privacidad, con dom.security.https_only_mode como interruptor y las excepciones por sitio administradas desde el menú del candado. En Chrome y Edge, la misma idea se encuentra en Configuración, Privacidad y seguridad, Seguridad, etiquetada Usar siempre conexiones seguras. Cualquiera que sea la etiqueta, verifique el comportamiento con un host que solo responde en el puerto 80, porque un modo que se actualiza y luego retrocede silenciosamente no es la protección que cree haber habilitado. La documentación solo HTTPS de Firefox detalla el comportamiento de actualización, advertencia y excepción para ese navegador.
Paso 3: arregla los recursos, no solo la barra de direcciones
Cuando falla una actualización, lea el error exacto en lugar de la barra de direcciones. Un host sin escucha HTTPS, un nombre de host que no coincide con el certificado y una cadena caducada producen mensajes diferentes y pertenecen a propietarios diferentes. Sólo el primero es una brecha del lado del servidor; el segundo suele ser un marcador que nunca se actualizó; el tercero es un problema de renovación para el que la conexión VPN es irrelevante.
No agregue una excepción de certificado a un sitio de cuenta porque la VPN está activada. La excepción desactiva la verificación que habría detectado exactamente la interceptación que una VPN debe evitar.
La tercera parte está dentro de la página y es la que la gente pasa por alto. Una página que se carga a través de HTTPS aún puede extraer imágenes, fuentes o scripts de una URL http, y el navegador las bloqueará o reducirá el indicador de seguridad de toda la página. Inspeccione las solicitudes fallidas en el panel de red y corrija las referencias de recursos a su propietario en lugar de asumir que la barra de direcciones describe cada solicitud. En un sitio que ejecuta, eso significa corregir las URL almacenadas en el CMS o la plantilla en lugar de reescribirlas en el navegador. Si no puede cambiar la fuente, registre el contenido mixto como un espacio conocido, porque un candado sobre una página que extrae recursos de texto sin formato es una señal falsa.
Paso 4: qué añade HSTS y qué no
HSTS es una política del sitio más que una preferencia del navegador, y es el único mecanismo aquí que sobrevive al escribir http:// en un perfil nuevo. Una vez que un navegador ha visto un encabezado Strict-Transport-Security para un host, reescribe las solicitudes posteriores en https antes de enviarlas, que es exactamente la propiedad que desea. No hace nada por un host que el navegador nunca ha visitado, ni tampoco por un nombre de host diferente que sirve a la misma aplicación.
Comprueba lo que envía el origen con curl -sSI https://example.com | grep -i strict-transport-security. Un encabezado faltante es un cambio de servidor y no algo que un cliente pueda instalar. Si está presente, lea max-age y si includeSubDomains está configurado, porque una edad máxima corta caduca entre visitas y un includeSubDomains faltante deja todos los subdominios desprotegidos. RFC 6797 define cómo un agente de usuario aplica la política y qué puede ignorar. La precarga es un compromiso independiente, así que verifique el estado a través de la API hstspreload.org antes de prometerle a alguien que un dominio está en la lista.
Verificación y reversión
La reversión es económica para la configuración del cliente y costosa para HSTS. Al desactivar el modo solo HTTPS se restaura el comportamiento anterior inmediatamente; una edad máxima larga no lo hace, y los visitantes que ya la recibieron continúan actualizándose hasta que caduque.
Así que verifique en orden antes de dar por hecho. Vuelva a cargar desde un caché frío y confirme que la primera solicitud en el panel de red sea https sin redireccionamiento anterior. Luego verifique un subdominio, porque includeSubDomains es donde estas políticas generalmente resultan ser más limitadas de lo que se supone. Luego, revisa una página que extraiga recursos de terceros, ya que el contenido mixto es la falla que sobrevive a todas las demás correcciones.
Si la primera solicitud sigue siendo http después de todo eso, el cliente ya no es la variable: el enlace en el que la gente hace clic lo es. Busque en los lugares que controla la forma http del nombre de host, actualícelos y vuelva a realizar la prueba con la misma recarga de caché en frío. Mantenga la pregunta sobre VPN separada en todo momento, porque el túnel cambia quién puede ver la solicitud y nunca cambia si la solicitud está cifrada. La línea a poner en el ticket es que la primera solicitud es la que importa, y una redirección es sólo un recibo de una solicitud ya enviada.