Anteriormente demostré cómo forzar el uso de HTTPS (HTTP sobre SSL/TLS) en Apache. Esta vez voy a demostrar cómo implementarlo en un servidor Web Nginx.

Esta configuración es necesaria para aquellos casos en los que se envía información sensible a través de Internet. Como por ejemplo formularios, pantallas de login y todo sitio que maneje información confidencial. Sin embargo desde hace tiempo Google recomienda el uso de HTTPS por defecto ya que considera a la seguridad como un aspecto clave y una prioridad. Lo cual afecta al posicionamiento en los rankings del buscador.

Sin embargo, el uso forzado de HTTPS se debe implementar de manera correcta para no afectar la experiencia de navegación de los usuarios. La transición de HTTP a HTTPS debe ser transparente al usuario (más allá de notar un candado en la barra de dirección de su navegador). De nada sirve intentar acceder a un recurso determinado y que el servidor nos redireccione al home del sitio Web sobre HTTPS. Para ello se debe utilizar una redirección permanente hacia la versión correcta del recurso, especificado a través de la variable request_uri en Nginx.

A fin de implementar HTTPS forzado en Nginx, es necesario definir servidores diferentes para los puertos 80 (HTTP) y 443 (HTTPS). La versión del sitio Web sobre HTTP sólo define una redirección permanente hacia el sitio sobre HTTPS utilizando una regla de reescritura (rewrite):


    server {
        listen       80;
        server_name  www.linuxito.com;
        rewrite      ^ https://$server_name$request_uri? permanent;
    }

Luego se configura el sitio sobre HTTPS:

    server {
        listen       443 ssl;
        server_name  www.linuxito.com;

        ssl_certificate     /RUTA/AL/CERTIFICADO.pem;
        ssl_certificate_key /RUTA/A/LA/CLAVE_PRIVADA.pem;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        [...]

De esta forma se redirige correctamente al mismo recurso pero sobre HTTPS.

Para endurecer aún más la seguridad del sitio, revisar la configuración de Nginx presente en el artículo Hardening de servidores Nginx sobre FreeBSD.


Tal vez pueda interesarte


Compartí este artículo