miércoles, mayo 03, 2006

Forzando HTTPS

En una configuración de squid en modo reverse-proxy, ¿es posible forzar una conexión no segura para que sólo sea segura?. De la forma;

http://site.com/user (http o https)

http://site.com/admin (sólo https)

Con apache, la solución es trivial.
Pero en squid, tambien se puede conseguir con un redirector.

Otra solución es utilizar la ACL myport para diferenciar entre las peticiones aceptadas en los diferentes puertos. (443 y 80). De esta forma, se pueden denegar accesos HTTP a recursos que sólo pueden ser accedidos mediante HTTPs y con la ayuda de deny_info crear una redirección automática al https.

No tiene sentido tener un proxy delante de un servidor web que sólo hace de pasarela de las peticiones HTTPs. Para ello vale más publicar el puerto HTTPs del servidor web directamente en internet mediante NAT o similar.

(al hilo con el post anterior)
Uno de los principales beneficios de terminar las conexiones SSL en el reverse proxy, es que el servidor web no necesita manejar la carga de SSL y se puede centrar en su propósito principal, que es servir contenido. Tambien permite el cache de el contenido del servidor web, en el reverse proxy, reduciendo la carga en el backend.
La desventaja, es que no tienes forma de saber que la URL que el cliente solicito era HTTPs, ya que la petición que llegó al servidor web fué HTTP.
Esto si es necesario para estadísticas de acceso y demás, se puede solucionar colocando el pgrograma de análisis de logs en el reverse proxy.

No hay comentarios: