Archive for January, 2012

  • Como Redireccionar el Trafico HTTP a HTTPS en Tomcat

    0

    Apache Tomcat tiene la habilidad de redireccionar todo el tráfico HTTP a HTTPS lo cual hace que cualquier entrada al sitio sea segura. Pero como en el caso de Mapaprop queremos servir imágenes de las propiedades a third party feeds y sorprendentemente como en el caso de OLX no pueden manejar requests HTTPS para las imágenes.

    Editando el archivo de configuración server.xml podemos redireccionar todo el tráfico a HTTPS de la siguiente manera:

    <Connector port="8080" protocol="HTTP/1.1"
    redirectPort="443"/>
    
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS"
    keystoreFile="conf/keystore" keystorePass="somepass"/>

    Ahora para evitar de manera permanente el protocolo HTTPS podemos editar el archivo web.xml de cada webapp que queremos servir y agregar el siguiente security constraint:

    <!-- Require HTTPS for everything except /img (favicon) and /css. -->
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>Private</web-resource-name>
    <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
    </security-constraint>
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>PrivateORPublic</web-resource-name>
    <url-pattern>/somefolder/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
    <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
    </security-constraint>

    De ésta manera el folder /somefolder/* y todos sus descendientes pueden o no utilizar el protocolo HTTPS.