Diferència entre revisions de la pàgina «Implementar HTTPS y HSTS»
Línia 16: | Línia 16: | ||
*'''$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" highlight="21,22,23"> | + | <syntaxhighlight lang="nginx" highlight="21,22,23,40"> |
# www.higieneposturalcloudgrupo2.tk | # www.higieneposturalcloudgrupo2.tk | ||
upstream www.higieneposturalcloudgrupo2.tk { | upstream www.higieneposturalcloudgrupo2.tk { |
Revisió del 10:44, 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;
}
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
Webgrafía