Diferència entre revisions de la pàgina «Implementar HTTPS y HSTS»

De Wiket
Salta a la navegació Salta a la cerca
Línia 83: Línia 83:
  
  
<syntaxhighlight lang="nginx" highlight="4,9,10,11,14,18,19,20">
+
<syntaxhighlight lang="nginx" highlight="4,5,10,11,12,13,18,19,20">
 
server {
 
server {
 
         modsecurity on;
 
         modsecurity on;

Revisió del 11:12, 3 abr 2022

Con respecto a la implementación HTTPS y HSTS, ha sido aplicada automáticamente a través del docker-compose que nosotros ejecutamos en unos de los puntos anteriores a este. Concretamente, en el punto 9. Accesibilidad a servicios externos, donde explicamos como obtener todo lo necesario para implementar todos los servicios que nos solicitan.


Comentado esto, explicaremos brevemente la configuración que añade nuestro docker-compose a nuestros diferentes virtualhost para que se logre dicha implementación (HTTPS y HSTS):


HSTS

En primer lugar, para la implementación de la política de seguridad HSTS en nuestro servidor web Nginx, deberemos aplicar las siguientes líneas de configuración que mostramos a continuación en cada uno de nuestros virtualhosts existentes:

  • location / ---> Este recurso se utiliza para indicarle al servidor web Nginx a donde tiene que dirigirse las solicitudes que se soliciten. En este caso, le indicamos /, lo que coincidirá con todas las solicitudes demandadas y nos dirigirá a nuestra página web (este recurso se utiliza como última opción). También, podremos poner nuestra URI exacta.
  • return 301 https:// ---> Se encarga de redireccionar el tráfico a la versión HTTPS de la página web visitada.
  • $host ---> Esta variable es igual a la línea host que se escribe en el encabezado de la solicitud del navegador web o el nombre del servidor que procesa la solicitud si el encabezado host no está disponible.
  • $request_uri ---> La variable $request_uri es el URI de solicitud original completo, incluyendo los argumentos. En este caso, /.
  • add_header Strict-Transport-Security "max-age=31536000" always; ---> Esta línea de configuración, se encargará de informar a cada unos de los navegadores web que solamente se puede acceder a nuestro sitio web mediante el protocolo HTTPS.


        # www.higieneposturalcloudgrupo2.tk
        upstream www.higieneposturalcloudgrupo2.tk {
        ## Can be connected with "web" network
        server 172.18.0.5:80;
        }
server {
        modsecurity on;
        modsecurity_rules_file /etc/nginx/modsec/main.conf;
        server_name www.higieneposturalcloudgrupo2.tk;
        listen 80 ;
        access_log /var/log/nginx/access.log vhost;
        # Do not HTTPS redirect Let'sEncrypt ACME challenge
        location ^~ /.well-known/acme-challenge/ {
                auth_basic off;
                auth_request off;
                allow all;
                root /usr/share/nginx/html;
                try_files $uri =404;
                break;
        }
        location / {
                return 301 https://$host$request_uri;
        }
}
server {
        modsecurity on;
        modsecurity_rules_file /etc/nginx/modsec/main.conf;
        server_name www.higieneposturalcloudgrupo2.tk;
        listen 443 ssl http2 ;
        access_log /var/log/nginx/access.log vhost;
        ssl_session_timeout 5m;
        ssl_session_cache shared:SSL:50m;
        ssl_session_tickets off;
        ssl_certificate /etc/nginx/certs/www.higieneposturalcloudgrupo2.tk.crt;
        ssl_certificate_key /etc/nginx/certs/www.higieneposturalcloudgrupo2.tk.key;
        ssl_dhparam /etc/nginx/certs/www.higieneposturalcloudgrupo2.tk.dhparam.pem;
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_trusted_certificate /etc/nginx/certs/www.higieneposturalcloudgrupo2.tk.chain.pem;
        add_header Strict-Transport-Security "max-age=31536000" always;
        include /etc/nginx/vhost.d/default;
location / {
                proxy_pass http://www.higieneposturalcloudgrupo2.tk;
}


Implementación de la política de seguridad HSTS


Como siempre, recordad que por cada cambio se que se realice, deberemos guardarlo con la combinación de teclas Control + O y salir con la combinación de teclas Control + X.


HTTPS

Por último, una vez hayamos visto como se implementa la política de seguridad HSTS en los diferentes virtualhost de nuestro servidor web Nginx, veremos como podemos activar HTTPS en nuestro sitio web para que sea más seguro y la información viaje encriptada. En nuestro caso, ya hemos podido ver un poquito por encima como se realiza dicha implementación por lo mostrado en el punto anterior, pero esto no es lo suficientemente claro, y por dicha razón, explicaremos la configuración necesaria para que esto funcione perfectamente. Dicho esto, veamos como se hace:


En primer lugar, deberemos dirigirnos nuevamente a nuestro archivo de configuración virtualhost y, añadir las líneas siguientes para que funcione correctamente (las líneas marcadas son las fundamentales para que dicha implementación funcione, las otras no son necesarias):


server {
        modsecurity on;
        modsecurity_rules_file /etc/nginx/modsec/main.conf;
        server_name www.higieneposturalcloudgrupo2.tk;
        listen 443 ssl http2 ;
        access_log /var/log/nginx/access.log vhost;
        ssl_session_timeout 5m;
        ssl_session_cache shared:SSL:50m;
        ssl_session_tickets off;
        ssl_certificate /etc/nginx/certs/www.higieneposturalcloudgrupo2.tk.crt;
        ssl_certificate_key /etc/nginx/certs/www.higieneposturalcloudgrupo2.tk.key;
        ssl_dhparam /etc/nginx/certs/www.higieneposturalcloudgrupo2.tk.dhparam.pem;
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_trusted_certificate /etc/nginx/certs/www.higieneposturalcloudgrupo2.tk.chain.pem;
        add_header Strict-Transport-Security "max-age=31536000" always;
        include /etc/nginx/vhost.d/default;
location / {
                proxy_pass http://www.higieneposturalcloudgrupo2.tk;
}



HTTPS




Webgrafía



Volver a IETI Cloud Grupo 2