Grup 3 - Implementar HTTPS, HSTS i WAF (IETI Cloud)
Tornar a Projecte IETI Cloud - Grup 3.
Tasca
33. Implementar HTTPS i HSTS (HTTPS only) en IETI Cloud.
34. Implementar WAF al IETI Cloud.
Informe
Per tal de poder establir connexions HTTPS necessitarem crear els certificats dins la màquina Proxmox, però com no te és accessible des de fora no podem certificar amb Certbot. És per això que generarem uns certificats autosignats per un domini el qual encaminarem mitjançant el fitxer /etc/hosts
. Per generar el certificat i la seva clau privada utilitzarem OpenSSL.
sudo openssl req -x509 -nodes -newkey rsa:4096 -keyout privkey.key -out fullchain.crt -days 365
Modificarem els fitxers de configuració d'Apache per tal d'afegir els nous certificats.
1 <VirtualHost *:80>
2 ServerName local.dev
3 ServerAlias wordpress.local.dev
4
5 RewriteEngine On
6 RewriteCond %{SERVER_NAME} =wordpress.local.dev
7 RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
8 </VirtualHost>
9 <VirtualHost *:443>
10 ServerName local.dev
11 ServerAlias wordpress.local.dev
12
13 Header always set Strict-Transport-Security "max-age=15780000; includeSubDomains"
14
15 SSLEngine On
16 SSLProxyEngine On
17 SSLCertificateFile /opt/ssl/live/localhost/fullchain.crt
18 SSLCertificateKeyFile /opt/ssl/live/grup3ieti.tk/privkey.key
19 #Include /opt/ssl/options-ssl-apache.conf
20
21 RequestHeader set X-Forwarded-Proto https
22 ProxyPreserveHost On
23
24 ProxyPass / http://wp/
25 ProxyPassReverse / http://wp/
26
27 ErrorLog ${APACHE_LOG_DIR}/wordpress.grup3ieti.tk-error.log
28 CustomLog ${APACHE_LOG_DIR}/wordpress.grup3ieti.tk-access.log combined
29 </VirtualHost>
Finalment, haurem de deshabilitar l'opció network.stricttransportsecurity.preloadlist
dins la configuració de Firefox (about:config
) i afegir una entrada al nostre fitxer /etc/hosts
per tal de direccionar a aquest nou domini.
1 127.0.0.1 localhost
2 127.0.1.1 (hostname)
3 127.0.0.1 local.dev www.local.dev classroom.local.dev wordpress.local.dev
4
5 # The following lines are desirable por IPv6 capable hosts
6 ::1 ip6-localhost ip6-loopback
7 fe00::0 ip6-localnet
8 ff00::0 ip6-mcastprefix
9 ff02::1 ip6-allnodes
10 ff02::2 ip6-allrouters
Un cop aplicats tots aquests canvis haurem de reconstruir la imatge Docker del reverse proxy i ja podrem accedir als serveis desplegats sobre la màquina Proxmox.
docker-compose down
docker image rm local/apache-proxy:v2
docker-compose up -d --build