Como decía en esta respuesta en Webmasters.SE, la única solución general para este problema es proporcione a sus usuarios la dirección https://
solamente y asegúrese de que esperan que la usen solo. En última instancia, es responsabilidad del usuario verificar que esté utilizando SSL / TLS, como esperan.
Una forma de intentar imponer esto automáticamente es alentar a los usuarios a utilizar un navegador que admita Seguridad de transporte estricta de HTTP (de nuevo, hasta que todos los navegadores lo admitan, esto requiere que el usuario lo sepa).
Otras formas de actualizaciones forzadas por el servidor (incluido el cierre del puerto HTTP simple) serán vulnerables a los ataques MITM. Dicho esto:
- Las redirecciones forzadas de
http://
a https://
protegerán al usuario contra ataques pasivos. También puede ayudar a que el usuario se dé cuenta del problema (es decir, si se conectan desde una red en la que pueden confiar, se acostumbrarán a él y es posible que resulte extraño no ver https://
en otras redes). Por esas razones, vale la pena hacerlo de todos modos; Al menos estás mitigando el riesgo.
- Sería ideal incluir más sitios en la lista HSTS precargada , por lo que como para no ser vulnerable, incluso en la primera conexión. Sin embargo, al usar HSTS, una conexión en una red de confianza una vez con la configuración de ese navegador debería ser suficiente para que los navegadores sigan usando HTTPS para ese sitio.
Una vez hecho esto, aún debe indicar a los usuarios que no ignoren las advertencias de los certificados.
(Siempre es mejor combinar todo esto con cookies seguras, si se usan cookies).