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 - rating ssllabs a+ 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.