Passare Da Http A Https Apache2: Come Fare

https-apache2 guida configurazioneDopo aver visto in dettaglio come passare da http a https su Aruba e su siteground, vediamo in questo post come configurare https apache2.

Premetto che la comprensione di questo articolo richiede un certo numero di conoscenze tecniche. In particolare bisogna avere confidenza con la configurazione del web server Apache.

Infatti bisognerà installare e configurare il certificato ssl manualmente. Niente clicca qui per attivare https.

Ovviamente non avrebbe senso ripetere cos’è https e definizioni di questo genere; per questo rimando alla lettura del post già citato sopra sul passaggio da http ad https.

Qui si parlerà esclusivamente della configurazione https apache2.

 

Diamo un occhiata alla checklist per la configurazione https Apache2

Https Apache2: la checklist

Per passare da http ad https su Apache2 basta armarsi di un po’ di pazienza e seguire i passi della checklist seguente:

  1. Acquistare certificato ssl
  2. Installare certificato sul server Apache
  3. Modificare le impostazioni del sito se necessario
  4. Redirect 301 dei vecchi link non http sui nuovi https
  5. Verificare i rel canonical e modificarli se necessario
  6. Aggiornare i link interni, esterni e i riferimenti alle librerie
  7. Fare un check del robot.txt e modificarlo se necessario
  8. Aggiornare la sitemap con i link in https

Procediamo con ordine.

Ovviamente il primo passo da fare è acquistare il certificato ssl.

A questo scopo ti consiglio namecheap. Il motivo e spiegato nel paragrafo successivo.

Dove acquistare certificato ssl

Ci sono diversi provider dove è possibile acquistare certificati ssl: Aruba, godaddy, namecheap.

Namecheap è il mio preferito.  E’ quello che uso da tre anni a questa parte per i miei progetti e per i miei clienti.

https apache2: dove acquistare certificato ssl namecheap

Le offerte  che uso più spesso sono:

Come installare certificato ssl su Apache

Una volta acquistato il certificato ssl bisogna installarlo, o meglio configurare Apache in modo da funzionare con https e http. In un certo senso dovranno funzionare entrambe le versioni delle url …

In pratica se un utente digiterà sul browser http://www.sito.it verrà ridirezionato alla versione https, ovvero https://www.sito.it

Per installare https su Apache2 si possono seguire i semplici passi qua sotto che riassumono quelli della guida ufficiale di namecheap.

Per prima cosa occorrerà generare il CSR (Certificate Signing Request) attraverso il seguente comando:

lanciato il comando verranno richiesti a video alcuni dati da inserire e al termine della procedura verranno creati due file:

  • il file CSR che contiene il codice da inviare a namecheap durante per la fase di attivazione
  • il file key che contiente la chiave privata per decriptare la comunicazione client/server

Generato il CSR possiamo iniziare la procedura di attivazione sulla dashboard di namecheap.

Quindi facciamo login e accediamo alla sezione della dashboard.

<immagini procedura guidata namecheap>

A questo punto bisognerà attendere l’arrivo della email con i file del certificato ssl; se tutto è andato per il verso giusto dovremmo ricevere un pacchetto zippato contenente:

  • un file .crt (da non confondere con il CSR)
  • .ca-bundle

Se l’email è arrivata possiamo procedere all’installazione del certificato ssl su apache2.

Scaricato l’allegato della email puoi seguire la procedura qua sotto:

1 – fare l’upload del pacchetto zippato sul server con un scp

2 – sul server creare una directory dentro /etc con il nome ssl

3 – scompattare e copiare i file del pacchetto zippato all’interno di /etc/ssl

4 – assicurarsi di aver abilitato il modulo ssl di apache2

5 – creare un virtualhost dediato per le configurazione dell’https

Per questa operazione è meglio separare la parte di configurazione ssl dal resto, creando due virtual host separati come i seguenti (tratti dal mio gist di github).

Puoi utilizzare gli snippet di sotto, facendo copia e incolla e creando i file ssl.conf e www.conf (ovviamente puoi customizzare i nomi purchè abbiano estenzione .conf) sotto il path di apache2 /etc/httpd/conf.d/ (per essere precisi il path dipende dalla distribuzione linux che stai utilizzando)

 

Modifiche alle impostazioni del sito

Questa è probabilmente la parte più semplice della checklist.

Indipendentemente dalla tecnologia, framework o cms che utilizzi nel tuo sito, ci sarà sicuramente un punto nel quale dovrai cambiare qualche impostazione che riguarda le url.

Su wordpress per l’https per esempio bisognerà sicuramente cambiare l’indirizzo del sito andando alla voce Generali della sezione Settings del pannello di amministrazione:

wordpress https apache

Redirect 301 per passare da http a https

Ok. A questo punto dovremo pensare a come comportarci con i vecchi link http.

Avrai sicuramente faticato non poco per guadagnare un posizionamento SEO rispettabile. Non è il caso di perdere l’indicizzazione conquistata non credi?

Se stiamo facendo tutto questo lavoro è per guadagnare posizioni sui motori di ricerca.

Quello che bisogna fare è molto semplice. Creare delle regole di rewrite (rewrite rule) sull’.htaccess per gestire questa redirezione.

Ecco come:

Indipendente dal fatto che il tuo sito si basi su un CMS come wordpress o su un framework custom aggiorna i rel canonical se sono presenti.

I link interni, in generale dovrebbero andare a posto con i redirect 301, ma fai una verifica per maggior sicurezza. Prova a seguirli per vedere se funziona il passaggio da http a https.

Se stai configurando wordpress per l’https dai un occhiata a questo stesso paragrafo nel post precedente.

Per i tuoi post che contengono link a risorse esterne, accertati che puntino alle loro versioni https (se disponibili)

Stesso discorso per le librerie esterne. Assicurati di usare l’https anche per queste.

Check robot.txt

Qui non c’è molto da dire. Se nel robot.txt c’è qualche riferimento esplicito a link senza https, va modificato opportunamente.

Passare da http a https nella sitemap

Per la sitemap se ti trovi su wordpress puoi rigenerarla con il plugin Yoast Seo e caricarla sulla search console.

Per passare il sito da http a https ti consiglio comunque di generare una sitemap contenente i link https e caricarla separatamente sulla google search console.

ATTENZIONE! Non richiedere la rimozione delle vecchie url http dall’indice. Sarebbe un errore enorme.

Google capirà che stai facendo il passaggio.

Quando un visitatore cliccherà su un link vecchio indicizzato in http verrà portato alla versione https grazie ai redirect 301 che abbiamo messo nell’.htaccess.

In questo modo non dovremmo perdere l’indicizzazione guadagnata e i nostri visitatori passano da http ad https in maniera transparente.