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

De Wiket
Salta a la navegació Salta a la cerca
Línia 15: Línia 15:
  
 
*'''$request_uri''' ---> La variable '''$request_uri''' es el [https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/uri-identificador-de-recursos-uniformes/ '''URI'''] de solicitud original completo, incluyendo los argumentos. En este caso, '''/'''.
 
*'''$request_uri''' ---> La variable '''$request_uri''' es el [https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/uri-identificador-de-recursos-uniformes/ '''URI'''] de solicitud original completo, incluyendo los argumentos. En este caso, '''/'''.
 +
 +
<syntaxhighlight lang="nginx">
 +
        # 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;
 +
}
 +
</syntaxhighlight>
  
  

Revisió del 10:43, 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, /.
        # 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;
}


HST


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

HTTPS




Webgrafía



Volver a IETI Cloud Grupo 2