Parlando della prematura e repentina scomparsa di Authorship, abbiamo ribadito come Google abbia iniziato a dare priorità alle pagine web protette dal protocollo HTTPS: già diffuso su tutti i siti di e-Commerce, non è detto – anzi, è poco probabile – che sia stato attivato su blog o testate giornalistiche online. Ciò potrebbe comportare una perdita di posizioni in classifica tra i risultati del motore di ricerca e, di conseguenza, diminuire la propria visibilità. È meglio correre ai ripari… e configurare il server per forzarlo.

Anzitutto, per attivare HTTPS occorre acquistare un certificato SSL: ne esistono sostanzialmente di due tipologie — con o senza il supporto dei sotto-domini. La registrazione può essere associata a persone fisiche o giuridiche, presso diverse autorità certificative. Salteremo questo passaggio perché differisce da provider a provider e chi fosse in grado di registrare e installare da sé i certificati non avrebbe neppure bisogno di questa guida. Effettuato l’acquisto, il problema diventa forzarne l’utilizzo in accesso al sito web.

Una pratica abbastanza diffusa è quella di cifrare soltanto alcune parti d’un sito – come il pannello d’amministrazione o i moduli – oppure di concedere all’utente la scelta del protocollo da utilizzare. Non è un caso che lo stesso Google suggerisca d’ometterlo, nell’integrazione degli script o dei CSS: il rischio è che la stessa pagina sia indicizzata due volte e che quella su HTTP penalizzi la versione accessibile in HTTPS. Inoltre, produrre una sitemap per ognuno dei due protocolli supportati è sconsigliato da Mountain View.

Quindi, posto che la soluzione migliore sia forzare l’accesso a tutte le pagine via HTTPS, non resta che istruire il web server: i tre più diffusi sono Apache, nginx e IIS. Di seguito, proporrò delle configurazioni d’esempio che – almeno, in un caso – non implicano un accesso alla dashboard amministrativa e possono essere riprodotte sui servizi di hosting (quelli che permettono l’installazione di WordPress, per intenderci). Effettuare un copia e incolla delle istruzioni sarebbe comunque dannoso, senza sapere come destreggiarsi.

Apache, che molto probabilmente è il server usato dal vostro sito, permette di forzare il protocollo HTTPS da .htaccess — un file da posizionare nella cartella-radice dello spazio web. Verificata l’attivazione di mod_rewrite.c, è sufficiente:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,NC,L]

Attenzione a non sovrascrivere le istruzioni dei CMS, come WordPress, col quale questa tecnica è comunque compatibile — ma dev’essere posizionata a dovere e non confliggere con le altre.

nginx non supporta .htaccess per una lunga serie di ragioni, quindi per forzare HTTPS sarete costretti a modificare direttamente la configurazione del server. Ecco come fare:

location / {
    rewrite ^/?(.*) https://$server_name/$1 permanent;
}

È da inserire nel file nginx.conf. Esistono numerosi metodi alternativi – come pure su Apache – che potrebbero essere più o meno vantaggiosi, a seconda delle esigenze specifiche. Qui non prendo in considerazione il caso dei sotto-domini o il redirect basato sulla porta 80 (per citarne uno).

IIS, il web server di Microsoft, propone due soluzioni: dall’interfaccia grafica dell’amministrazione basta posizionarsi in Impostazioni SSL e selezionare Richiedi SSL oppure Richiedi SSL a 128 bit. Altrimenti:

<rule name="rule 1O" stopProcessing="true">
    <match url="^/?(.*)" ignoreCase="true" />
    <action type="Rewrite" url="/https://%{SERVER_NAME}/{R:1}" />
</rule>

Da aggiungere al file web.config. Qui e con nginx le possibilità di corrompere l’intera configurazione sono maggiori — come i privilegi richiesti per procedere.

A costo d’essere ripetitivo, vi invito a non fare un cut’n'paste delle istruzioni sul vostro server: potreste effettuare delle prove su una macchina virtuale, ma ogni configurazione è differente e richiede un intervento mirato. Queste stringhe, in sostanza, potrebbero rendere inaccessibile il vostro sito — se non utilizzate correttamente. L’importante è seguire le linee guida di Google e attrezzarsi affinché le pagine web siano mostrate soltanto via HTTPS e non o anche in HTTP. Finito? Macché, dovrete adeguare tutti gli script.

Photo Credit: Carlos Luna via Photopin (CC)