Impostazione del reindirizzamento HTTPS su Nginx: una semplice guida

Autore:Lars Nyström
Aggiornato:22 mar 2025

Nel panorama digitale odierno, proteggere il tuo sito web con HTTPS non è solo una raccomandazione, ma una necessità. HTTPS assicura che i dati trasmessi tra il tuo sito e gli utenti siano crittografati, proteggendo informazioni sensibili come i dettagli della carta di credito e le credenziali di accesso. L'implementazione di un reindirizzamento HTTPS automatico può contribuire a garantire che tutti gli utenti si connettano in modo sicuro, anche se utilizzano accidentalmente il protocollo HTTP non crittografato.

Questa guida ti guiderà attraverso la configurazione di un reindirizzamento HTTPS su un server web Nginx, coprendo vari scenari per soddisfare le tue esigenze.

Perché i reindirizzamenti HTTPS sono importanti

  • Sicurezza: crittografa i dati in transito, proteggendoli dalle intercettazioni.
  • Fiducia: gli utenti hanno maggiori probabilità di fidarsi dei siti che utilizzano HTTPS, migliorando la credibilità del tuo sito.
  • Conformità: molti siti Web e servizi ora richiedono HTTPS per le integrazioni API e gli accessi degli utenti.

Comprendere le direttive Nginx

Nginx utilizza direttive per configurare il comportamento. La direttiva return è particolarmente utile per i reindirizzamenti immediati. Consente di specificare il codice di stato, la posizione di reindirizzamento e il corpo del contenuto in una riga.

Esempio di sintassi:

return 301 https://$host$request_uri;

Questa direttiva dice a Nginx di restituire un reindirizzamento 301 (permanente) alla versione https:// dell'host corrente con lo stesso URI di richiesta.

Configurazione dei reindirizzamenti HTTPS

1. Reindirizzamento di un intero sito

Se desideri che tutto il traffico verso il tuo sito utilizzi HTTPS, modifica il blocco server predefinito nel file di configurazione di Nginx (nginx.conf o un file di configurazione specifico del sito).

server {
    listen 80;
    server_name example.com;

    location / {
        return 301 https://$host$request_uri;
    }
}

Questo reindirizza tutte le richieste a https://example.com.

2. Reindirizzamento di directory specifiche

Se si desidera che solo alcune directory utilizzino HTTPS, utilizzare la direttiva location.

location ^~ /test/ {
    return 301 https://example.com$request_uri;
}

Questo reindirizza qualsiasi richiesta a /test/ o ai file al suo interno a https://example.com.

3. Reindirizzamento di una singola pagina

Per reindirizzare un file specifico, come index.html, utilizzare quanto segue:

location ^~ /index.html {
    return 301 https://example.com;
}

In questo modo, quando gli utenti richiedono index.html, vengono reindirizzati a https://example.com.

4. Reindirizzamenti personalizzati

Per reindirizzamenti più complessi, puoi includere parametri aggiuntivi.

return 301 https://new.example.com/path/old-page.html;

Questo reindirizza http://old.example.com/path/old-page.html a https://new.example.com/path/old-page.html.

Le migliori pratiche

  • Test: dopo l'implementazione, verifica il reindirizzamento accedendo al tuo sito tramite HTTP e assicurandoti che passi a HTTPS.
  • Messaggio chiaro: utilizza un messaggio di errore chiaro per gli utenti se il reindirizzamento non riesce inizialmente.
  • Conformità: assicurati che tutti i sottodomini siano coperti nella tua configurazione.