
Per tutti gli articoli e le guide che riguardano il più popolare sistema operativo per PC, sfoglia il "Canale Windows".

Per tutti gli articoli e le guide che riguardano il sistema operativo open source per eccellenza, sfoglia il "Canale Linux".
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
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¶m2=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
Completata l'installazione del webserver, dobbiamo fare in modo che il sito risponda via HTTPS. Le istruzioni sono qui:
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")
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)
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
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
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
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
Riavviate Nginx, aprite il browser e provate ad aprire il vostro sito via http://
. Dovreste essere rimandati automaticamente all'indirizzo https://
corrispondente.