Redirigir tráfico http a https en Sun Java System Web Server

Vamos a ver como forzar la redirección de tráfico HTTP a HTTPS para una instancia web de Sun Java System Web Server o si fuera necesario únicamente para una sección concreta del website. Por seguridad es muy probable que queramos evitar que a un sitio web o partes del mismo se pueda acceder sin protocolo seguro (ssl-https).

En el fichero de configuración obj.conf ó foo-obj.conf de la instancia podemos establecer estas configuraciones de redirección. Para ello utilizaremos la etiqueta Client dentro del objeto Default.

En el siguiente ejemplo forzamos el uso de https para la url (urlhost) test.rm-rf.es y para todo el website (from=»/» y from=»/*». Lo que nos indica que el origen del tráfico tiene que ser siempre http es el atributo security=»false», es decir, todo el tráfico que no sea https y que cumpla lo que indican los NameTrans ejecutará la redirección:

<Object name="default">
<Client match="all" security="false" urlhost="test.rm-rf.es">
NameTrans fn="redirect" from="/" url-prefix="https://test.rm-rf.es/"
NameTrans fn="redirect" from="/*" url-prefix="https://test.rm-rf.es/"
</Client>
....
....
....
</Object>

Si quisiéramos redirigir únicamente una ruta concreta en lugar de especificar » podemos indicar la ruta:

<Object name="default">
<Client match="all" security="false" urlhost="test.rm-rf.es">
NameTrans fn="redirect" from="/prueba/" url-prefix="https://test.rm-rf.es/"
</Client>
....
....
....
</Object>

Una vez realizados los cambios reiniciamos la instancia para hacerlos efectivos:

# ./stopserv; ./startserv

En la documentación oficial encontraréis más información sobre cada una de las directivas y atributos (NameTrans, fn, urlhost, security…)