Per accedere all'OSPi con dati crittografati HTTPS, è necessario un proxy HTTPS che crittografi la connessione.
Un modo per farlo è con Nginx.
1. Installa Nginx:
sudo apt-get update
sudo apt-get install nginx
2. Crea certificato SSL:
cd /etc/nginx
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/nginx/cert.key -out /etc/nginx/cert.crt
3. Modifica configurazione:
sudo nano /etc/nginx/sites-enabled/default
Elimina tutte le righe e utilizza questa configurazione. Potrebbe essere necessario personalizzare le due cifre con "RASPI" con il nome del tuo Raspberry Pi.
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name raspi;
ssl_certificate /etc/nginx/cert.crt;
ssl_certificate_key /etc/nginx/cert.key;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
# access_log /var/log/nginx/access.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Fix the “It appears that your reverse proxy set up is broken” error.
proxy_pass http://localhost:8080;
proxy_read_timeout 90;
proxy_redirect http://localhost:8080 https://raspi;
}
}
4. Abilitare e riavviare Nginx:
sudo systemctl enable nginx
sudo service nginx restart
5. Fatto.
Ora puoi accedere tramite browser. Reindirizza le richieste http a https oppure puoi accedervi direttamente tramite http
L'originale della guida proviene da qui ed è stato adattato:
https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-with-ssl-as-a-reverse-proxy-for-jenkins
Non dimenticare di modificare l'inoltro delle porte del router sulla porta 443 del Raspi (ad es. modificare da 3000 verso raspi/80 a 3000 verso raspi/443). Nell'app OpenSprinkler ti colleghi quindi con l'opzione “SSL”