Redirigint port 80 a 443 per a que les peticions http passen a https automàticament

Redirigint del port 80 al 443 per a que les peticions http passen a ser https automàticament

En aquest xicotet article t'explique un truquet que he aplicat al meu hosting FTM (Fes-ho Tu Mateix) amb FreeBSD i diverses Raspberry Pi.

Resulta que en la Raspberry Pi del terrat, on tinc la càmera AllSky, quan escrivia el domini sense https, el Nginx de la Raspberry Pi que em fa de proxy invers redirigia el tràfic, tal qual, i em fallava perquè al ser http i no respondre el port 443 em donava error:
error accedint amb http

En el proxy invers, jo tenia la redirecció feta així:


 server {
    server_name allsky.joancatala.net;
    listen 443 ssl;

location / {
        proxy_pass http://192.168.1.10/;
        proxy_set_header Host $host;
    }

    ssl_certificate /usr/local/etc/letsencrypt/live/allsky.joancatala.net/fullchain.pem; # managed by Certbot
    ssl_certificate_key /usr/local/etc/letsencrypt/live/allsky.joancatala.net/privkey.pem; # managed by Certbot
    include /usr/local/etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem;
} 

I la solució ha segut modificant el fitxer, en Nginx, i afegint una configuració per a que si un usuari fa una petició al port 80 des del navegador, escrivint http, se li redireccione automàticament al port 443 de l'https, i així evitem l'error 404 Not Found.

La configuració definitiva és:


server {
    listen 80;
    server_name allsky.joancatala.net;

    # Redirige todo el tráfico HTTP a HTTPS
    return 301 https://$host$request_uri;
}

server {
    server_name allsky.joancatala.net;
    listen 443 ssl;

    location / {
        proxy_pass http://192.168.1.10/;
        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;
    }

    ssl_certificate /usr/local/etc/letsencrypt/live/allsky.joancatala.net/fullchain.pem; # managed by Certbot
    ssl_certificate_key /usr/local/etc/letsencrypt/live/allsky.joancatala.net/privkey.pem; # managed by Certbot
    include /usr/local/etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem;
}

És tan senzill com això.
Ara comprovem el funcionament d'Nginx amb:


$ doas  nginx -t

I si no dona errors, el reiniciem amb:


$ doas service nginx restart

I ja ho tenim, ara dona igual escriure http://url, que Nginx ens redirecciona a https://url, i tot bé:
error accedint amb http

Doncs bé això és tot, espere que trobes útil aquest article i que et motive a compartir els teus trucs, els teus coneixements i els teus experiments amb el Programari Lliure. Pensa-ho, va, que la Comunitat del Programari Lliure va creixent gràcies a la documentació, el disseny, la formació o la programació, sigues part de la Comunitat :-)

La cultura i la lliure circulació de les idees és l'arma més efectiva contra les dictadures del pensament i contra la ignorància.

Utilitats

NAVEGACIÓ SENSE RATOLÍ

- Tab següent enllaç.
- Shift+Tab anterior enllaç.
- Enter activa l'enllaç.
- Alt+esquerra anar arrere.

CONTRAST DE COLORS

Accessibilitat - Color Negre
Accessibilitat - Color Groc
Accessibilitat - Color Verd

Accessibilitat - Color Blau
Accessibilitat - Color Crema
Accessibilitat - Color Blanc

 

PORTADES ALTERNATIVES