Il momento migliore per migrare il proprio sito ad HTTPS è... ora! Se ancora utilizzi HTTP per il tuo dominio, devi agire immediatamente! Il primo passo consiste nell'ottenere un certificato gratuito e configurare a dovere il webserver ma, una volta aver verificato che tutto funzioni via HTTPS, è altrettanto importate impostare un redirect da HTTP a HTTPS: in questo modo, ogni volta che un utente richiederà una pagina tramite HTTP, verrà rimandato in modo trasparente all'equivalente HTTPS. Inoltre, questo redirect da HTTP a HTTPS informerà Google e gli altri motori di ricerca che il sito utilizza il protocollo sicuro, evitando la penalizzazione per i siti HTTP nei risultati delle ricerche (SERP) e facendo in modo che l'indirizzo proposto agli utenti sia immediatamente in HTTPS, trasmettendo maggiore autorevolezza. Vediamo allora come procedere per configurare il webserver (Apache HTTP Server o Nginx per Ubuntu Server, CentOS o Windows) con un redirect da HTTP verso HTTPS

Redirect HTTP HTTPS Apache Nginx Ubuntu Server, CentOS Windows - guida migliore configurazione webserver pronta uso

nota: nel resto dell'articolo ci riferiremo al programma "Apache HTTP Server" chiamandolo (impropriamente) solo "Apache", per brevità e per conformarci al nome usato nel quotidiano.

La difficoltà principale nel configurare un redirect da HTTP a HTTPS con Apache o Nginx sta nel fatto che gli URL possono essere estremamente complessi, ed è importante che il redirect li intercetti tutti a prescindere dal sito specifico. Un esempio di URL ragionevolmente articolato è:

http://www.sub1.sub2.dominio.it/cartella/file.html?param1=aaa+aaa+%3F+aaa&param2=bbb+bbb+%3F+bbb#ancora1

Ora: dobbiamo fare in modo che anche gli URL di questo tipo siano gestiti correttamente e ridirezionati da HTTP a HTTPS.

Prima di cominciare: Webserver, HTTPS ed eliminare HTTP

Prima di implementare la configurazione proposta di seguito dobbiamo accertarci di aver già installato e configurato il webserver (Apache oppure Nginx) sul nostro PC o server. Per la guida:

» Leggi: Installare e configurare un server web: La Grande Guida ad Apache, PHP, MySQL su Windows e Linux

Redirect HTTP HTTPS Apache Nginx Ubuntu Server, CentOS Windows - guida migliore configurazione webserver pronta uso

Completata l'installazione del webserver, dobbiamo fare in modo che il sito risponda via HTTPS. Le istruzioni sono qui:

» Leggi: Come ottenere un certificato HTTPS (SSL/TLS) gratis: la Grande Guida a Let's Encrypt su Linux CentOS/Ubuntu (rating SSL Labs: "A+")

Redirect HTTP HTTPS Apache Nginx Ubuntu Server, CentOS Windows - guida migliore configurazione webserver pronta uso - certificato https gratis guida Lets Encrypt

Una volta che il sito funziona correttamente via HTTPS, procediamo ad eliminare il virtual host HTTP preesistente relativo al sito che stiamo portando in HTTPS. Spulciamo i file di configurazione del webserver ed eliminiamo i blocchi simili a questi:

Apache:

<VirtualHost *:80>

ServerName miosito.com

...

Nginx:

server {

listen 80;

server_name miosito.com;

...

Riavviamo il servizio e verifichiamo puntualmente che il sito non risponda più via HTTP aprendolo tramite browser web come http://miosito.com (notate l'assenza della "s" finale in "http")

Redirect HTTP HTTPS Apache Nginx Ubuntu Server, CentOS Windows - guida migliore configurazione webserver pronta uso

Ripetiamo la prova con https://miosito.com (questa volta con la "s" finale in "http") ed assicuriamoci che la versione sicura continui ad aprirsi correttamente.

Redirect da HTTP a HTTPS con Apache

Per implementare il redirect da HTTP verso HTTPS con Apache utilizzeremo il modulo chiamato mod_rewrite. Attiviamolo seguendo questa procedura:

» Leggi: Installare e attivare mod_rewrite su Ubuntu Server, CentOS o Windows (guida Apache)

Redirect HTTP HTTPS Apache Nginx Ubuntu Server, CentOS Windows - guida migliore configurazione webserver pronta uso

Ora possiamo implementare il redirect da HTTP a HTTPS tramite il singolo comando concatenato proposto di seguito. Prima di lanciarlo, impartiamo sudo -s per ottenere i privilegi di root, poi:

  • Ubuntu: export MIO_DOMINIO="turbolab.it" && curl -o "/etc/apache2/sites-available/${MIO_DOMINIO}-http.conf" https://turbolab.it/scarica/205 && sed -i -e "s/miosito.com/${MIO_DOMINIO}/g" "/etc/apache2/sites-available/${MIO_DOMINIO}-http.conf" && cat "/etc/apache2/sites-available/${MIO_DOMINIO}-http.conf" && a2ensite "${MIO_DOMINIO}-http.conf" && systemctl restart apache2
  • CentOS: export MIO_DOMINIO="turbolab.it" && curl -o "/etc/httpd/conf.d/${MIO_DOMINIO}-http.conf" https://turbolab.it/scarica/205 && sed -i -e "s/miosito.com/${MIO_DOMINIO}/g" "/etc/httpd/conf.d/${MIO_DOMINIO}-http.conf" && cat "/etc/httpd/conf.d/${MIO_DOMINIO}-http.conf" && systemctl restart httpd

Come unica attenzione, ricordate di valorizzare opportunamente la variabile MIO_DOMINIO all'inizio con il nome a dominio per il quale stiamo impostando il redirect da HTTP ad HTTPS.

Provate ora ad aprire il vostro sito via http://. Dovreste essere rimandati automaticamente all'indirizzo https:// corrispondente. Se tutto funziona correttamente, avete concluso

Redirect HTTP HTTPS Apache Nginx Ubuntu Server, CentOS Windows - guida migliore configurazione webserver pronta uso

Se invece state lavorando con Apache su Windows oppure preferite svolgere l'operazione manualmente, iniziate scaricando questo file:

» Download: Template redirect HTTP-HTTPS Apache

Salvatelo, assegnandogli un nome a piacere (ma mantenendo l'estensione .conf!), in una delle cartelle dalle quali Apache carica automaticamente le configurazioni, ad esempio:

  • Windows: C:\Program Files\Apache\conf\vhosts\miosito-http.conf (presente e funzionante solo se avete seguito la nostra guida)
  • Ubuntu: /etc/apache2/sites-enabled/miosito-http.conf
  • CentOS: /etc/httpd/conf.d/miosito-http.conf

[In alternativa, spostate il file appena scaricato in un percorso a piacere e aggiungete una direttiva simile a include "/mio/percorso/miosito-http.conf" in coda al file di configurazione principale di Apache: a seconda della piattaforma, si tratta di C:\Program Files\Apache\conf\httpd.conf (Windows), /etc/apache2/apache2.conf (Ubuntu) oppure /etc/httpd/conf/httpd.conf (CentOS)]

Ora aprite il file di configurazione appena scaricato (usate Blocco note sotto Windows e nano con Linux) e sostituite le occorrenze della stringa miosito.com con il nome a dominio del vostro sito (senza www, ovviamente), e conservando il *. dove presente nel modello fornito

Redirect HTTP HTTPS Apache Nginx Ubuntu Server, CentOS Windows - guida migliore configurazione webserver pronta uso

Riavviate Apache, aprite il browser e provate ad aprire il vostro sito via http://. Dovreste essere rimandati automaticamente all'indirizzo https:// corrispondente.

Redirect da HTTP a HTTPS con Nginx

Se stiamo lavorando con Nginx su Ubuntu oppure CentOS, possiamo implementare il redirect da HTTP a HTTPS tramite il singolo comando concatenato proposto di seguito. Prima di lanciarlo, impartiamo sudo -s per ottenere i privilegi di root, poi:

export MIO_DOMINIO="turbolab.it" && curl -o "/etc/nginx/conf.d/${MIO_DOMINIO}-http.conf" https://turbolab.it/scarica/206 && sed -i -e "s/miosito.com/${MIO_DOMINIO}/g" "/etc/nginx/conf.d/${MIO_DOMINIO}-http.conf" && cat "/etc/nginx/conf.d/${MIO_DOMINIO}-http.conf" && systemctl restart nginx

Come unica attenzione, ricordate di valorizzare opportunamente la variabile MIO_DOMINIO all'inizio con il nome a dominio per il quale stiamo impostando il redirect da HTTP ad HTTPS.

Provate ora ad aprire il vostro sito via http://. Dovreste essere rimandati automaticamente all'indirizzo https:// corrispondente. Se tutto funziona correttamente, avete concluso

Redirect HTTP HTTPS Apache Nginx Ubuntu Server, CentOS Windows - guida migliore configurazione webserver pronta uso

Se invece state lavorando con Nginx su Windows oppure preferite svolgere l'operazione manualmente, svolgete i passaggi seguenti.

Innanzitutto, scaricare questo file:

» Download: Template redirect HTTP-HTTPS Nginx

Salvatelo, assegnandogli un nome a piacere (ma mantenendo l'estensione .conf!), nella cartella:

  • Windows: C:\Program Files\Nginx\conf\miosito-http.conf
  • Ubuntu/CentOS: /etc/nginx/conf.d/miosito-http.conf

Solo sotto Windows, ma non Linux: aprite con Blocco note il file di configurazione principale di Nginx (generalmente: C:\Program Files\Nginx\conf\nginx.conf) ed accodate questa direttiva:

include "C:\Program Files\Nginx\conf\miosito-http.conf"

Indipendentemente dalla piattaforma, aprite il file di configurazione appena scaricato (usate Blocco note sotto Windows e nano con Linux) e sostituite la stringa miosito.com con il nome a dominio del vostro sito (senza www, ovviamente). Prestate attenzione a conservare il punto all'inizio e il punto e virgola alla fine

Redirect HTTP HTTPS Apache Nginx Ubuntu Server, CentOS Windows - guida migliore configurazione webserver pronta uso

Riavviate Nginx, aprite il browser e provate ad aprire il vostro sito via http://. Dovreste essere rimandati automaticamente all'indirizzo https:// corrispondente.