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. Nginx aktivieren und neu starten:
sudo systemctl enable nginx
sudo service nginx restart
5. Fertig.
Sie können nun per Browser zugreifen. Er leitet http auf https anfragen um oder Sie greifen direkt per http darauf zu
Das Original der Anleitung stammt von hier und wurde angepasst:
https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-with-ssl-as-a-reverse-proxy-for-jenkins
Vergessen Sie nicht, die Portfreigabe ihres Routers auf den Raspi-Port 443 zu ändern (also z.b. vorher 3000 nach raspi/80 ändern in 3000 nach raspi/443). In der OpenSprinkler-App verbinden Sie sich dann mit der Option “SSL”