Skip to main content

Abilitare un certificato SSL Per Un Sito Web ( Anche in Ottica SEO ) su Apache2: Da Http a Https

From HTTP to HTTPS.

Google, da un po' di tempo, ci "suggerisce" di implementare un certificato SSL sui nostri siti web. Il premio? Concreti vantaggi lato SEO.

La mia personalissima opinione è che, anche se non contasse nulla dal punto di vista SEO ( e secondo me attualmente conta davvero poco poco ), un certificato SSL andrebbe comunque implementato.

E tutto ciò per garantire la sicurezza dei nostri utenti. Ovvio, ciò vale se avete una login con "dietro" dei dati sensibili, altrimenti un certificato https è praticamente inutile: sia ben chiaro.

Finita la super predica, iniziamo a vedere come fare.

HTTPS: Di Cosa Si Tratta?

SSL o "Secure Sockets Layer" è un protocollo ideato per consentire alle applicazioni di trasmettere informazioni in modo sicuro, criptato e protetto. Le applicazioni che utilizzano i certificati SSL sono in grado di gestire l'invio e la ricezione di chiavi di protezione e di criptare/decriptare le informazioni trasmesse utilizzando le stesse chiavi.

HTTPS: Come Funziona?

Quasi tutti i moderni browser sono ormai in grado di ricevere connessioni tramite l'utilizzo di 'SSL'. Per stabilire una connessione sicura tramite SSL è necessario che la vostra applicazione abbia una chiave di protezione, chiave che deve essere assegnata da un' Authority preposta che la rilascierà sotto forma di certificato.

Che Cosa Ci Serve?

Diamo per scontato che abbiate un server linux Debian e NON UBUNTU o similari ( quindi non scriveremo mai "sudo" in nessun comando ) ed Apache 2 installato e ( ben ) configurato. Servono fondamentalmente due pacchetti: ssl-cert e a libapache-mod-ssl ( già inclusi in Apache 2.2 ).

Premetto che, in questo esempio, tratteremo di certificati che non saranno sottoposti ad authorities, anche se la configurazione è ASSOLUTAMENTE identica.

Iniziamo con l'abilitare il modulo ssl: digitiamo il comando

a2enmod ssl

Fatto ciò, come ci viene suggerito, riavviamo Apache

/etc/init.d/apache2 restart

Ora creiamo una cartella che contenga i nostri bei certificati sotto Apache2

mkdir /etc/apache2/certificati/

e creiamo un bel certificato proprio dentro quella cartella

make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/certificati/certificato.pem

( vi verranno fatte un po' di domande dopo questo comando, tutte estremamente banali )

Se tutto è andato a buon fine ( dovrebbe! ) otterrete qualcosa di simile:

Benissimo! Adesso andiamo a modificare il virtual host del sito in cui vogliamo implementare il protocollo https ( ma non prima di aver fatto un bel backup del file, compito che lascio a voi ).

cp /etc/apache2/sites-available/xxxxx.no-ip.org /etc/apache2/sites-available/xxxxx.no-ip.org-ssl

( chiaro è che, al posto di xxxxx.no-ip.org, ci deve essere il vostro sito! )

Adesso editate il file xxxxx.no-ip.org-ssl usando il vostro editor preferito. Dopo la direttiva DocumentRoot inserite le righe

SSLEngine On
SSLCertificateFile /etc/apache2/certificati/certificato.pem 

Ricordate, poi, di modificare la direttiva in ). La porta, infatti, cambia: da 80 a 443.

Ora riavviamo Apache2

service apache2 restart

Se il vostro server è casalingo, ricordatevi di aprire la porta 443 sul router e di instradare le richieste verso la macchina giusta ( il vostro webserver casalingo, appunto ).

Finito? Quasi!

Da HTTP A HTTPS via VirtualHost

Adesso bisogna re-indirizzare tutte le richieste http verso le rispettive pagine https.

Farlo è davvero molto molto semplice: basta aggiungere queste regole nel virtual host.

Notate che, questa volta, la porta ritorna ad essere la 80 e che la stessa cosa può essere fatta anche agendo su .htaccess. Questa dichiarazione potete metterla subito prima di quella relativa alla porta 443.

Ricordatevi anche di aggiornare il symlink nei sites enabled e di farlo puntare al nuovo file su sites-available ( quello con -ssl )

Reloadiamo ( non serve un restart ) i file di configurazione di Apache

service apache2 reload

Et voilà: adesso avete un sito in cui, i vostri utenti, potranno trasmettere e ricevere informazioni in modo davvero molto molto sicuro, senza più il pericolo che qualcuno sniffi password o dati sensibili ( almeno dal punto di vista del protocollo, se poi l' applicazione è un colabrodo è tutta un' altra storia! ).

Mi sembra davvero tutto:

buon 83ery78r7rt!-3!%&R!%r56127!&/ a tutti!

Condividi