Come si sa google oramai marca come insicuri tutti i siti che non utilizzano crittografia (https) e che non montano un certificato SSL valido tramite una CA ufficiale riconosciuta. Quindi per non fare in modo che i propri utenti abbiano fastidiosi e poco incoraggianti messaggi di attenzione alla sicurezza o altro che possa scoraggiare la visita, bisogna subito sistemare questo importante aspetto di sicurezza. Per fare ciò occorre attrezzarsi per fare i seguenti passi di massima:

Passi preliminari di verifica

  • avere a disposizione un certificato ssl per il proprio dominio
  • avere il controllo dei DNS del proprio dominio (sul quale c’è il blog)
  • avere a disposizione l’accesso al database di wordpress e ovviamente ai file del programma

accertatevi di avere a disposizione tutto quanto sopra.

L’ottenimento del certificato SSL

In sintesi cosa dobbiamo fare? dobbiamo richiedere un certificato SSL per il nostro dominio alla CA che abbiamo scelto. Dobbiamo quindi caricare il certificato su apache del nostro webserver e assicurarci che la visualizzazione in https funzioni. A questo punto però non è finita, dobbiamo modificare nel sito tutti i richiami (link) a http in https, altrimenti la barra dell’indirizzo del browser darà errore di contenuto misto. Per fare questo dobbiamo agire sui file di wordpress ma anche sul database.

Dovendo fare modifiche sostanziali, per prima cosa fare un backup completo di file e database. Se avete un piano di hosting Denali, avete a disposizione un tool che fa automaticamente il backup di sito e database in un click facendo automaticamente detect delle impostazioni del database dal file di configurazione di wordpress. Non procedete mai senza avere un backup completo, in caso di errore altrimenti avrete compromesso il vostro sito e non potrete restorarlo. Quindi è assolutamente necessario tenere un backup, non farlo è da irresponsabili.

A questo punto dovete attivare il certificato SSL. In questo caso avete diverse possibilità: 1) potete usare un certificato no-profit gratuito che trovate su Denali ad esempio nella pagina di hosting e di server managed  (basato su letsencrypt) oppure decidere di acquistare un certificato SSL commerciale (questa cosa è più adatta per siti professionali usati per lavoro). Da un punto tecnico la questione non cambia. Per l’attivazione occorre svolgere i seguenti passi preliminari:

Requisiti dei DNS per certificati DV

  • dal DNS assicuratevi che il record vostrodominio.com punti correttamente al server e che sia presente un cname del WWW che punti nello stesso modo. Se ciò non avviene il certificato non verrà rilasciato dalla authority (sia essa quella no-profit che commerciale). Infatti normalmente attiverete un certificato domain-validated (DV) che fa appunto verifiche tramite i whois/dns;
  • entrate nel gestore del vostro piano di hosting oppure nel pannello della vostra vps in caso abbiate un server dedicato e configurate appropriatamente i vostri record;

A questo punto attivate il certificato. Se avete un hosting Denali e volete un certificato non profit, basta mettere due spunte e aspettare cinque minuti che il job sia completato. Il job permette automaticamente di chiedere il certificato, validarlo e installarlo nel vostro hosting. Facile no? Se avete invece scelto un certificato commerciale, ve lo troverete bello ed attivato senza alcuno sforzo sul vostro sito in quanto viene attivato automaticamente dal team sul vostro account.

Sistemazione del sito per essere navigato https

Una volta che avete completato tutti i passaggi per avere il certificato e avete quindi il vostro sito che sta girando in https, non avete ancora finito. Infatti aprendo con un browser noterete che il certificato dà quasi certamente un errore. Dal browser potete accertarvi se l’errore è “mixed content”. Se questo è l’errore che viene ritornato, significa che nel vostro sito ci sono ancora dei richiami a link http (non cifrati). Questo è essenzialmente perchè dovete ancora tradurre tutte le chiamate del vostro wordpress. Le chiamate del vostro wordpress sono praticamente tutte dentro il database, quindi dovete operare una sostituzione massiva di tutti gli http dentro il database. Questo può essere effettuato sia facendo un dump del database e sostituendo tutte le stringhe dentro il file sql e poi reimportarlo oppure utilizzando un tool di sostituzione db, come ad esempio questo: https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

in pratica ecco come dovete fare

  • Assicuratevi di avere backup completo di sito (tutti i file) e del database completo prima di iniziare;
  • scaricare il tool (in php) dentro la root del vostro wordpress;
  • spacchettate e aggiustate i permessi se necessario;
  • ora chiamate la path da un browser. lo script leggerà automaticamente il file di configurazione di wordpress per ottenere i dati di accesso al database;
  • se lo script non dà errore, allora significa che è pronto. potete quindi inserire le url http da sostituire con https e lanciare lo script;
  • esso sostituirà tutti i dati nel db;

a questo punto provate a rinavigare il sito wordpress e tutto dovrebbe essere ok, il broswer dovrebbe navigare il sito senza più errori sul certificato. Ricordatevi, molto importante, di rimuovere la directory del tool di sostituzione.

controllo finale

Se dovessero comparire ancora errori, allora significa che ci sono altri riferimenti errati ad http dentro il sito. Dovete trovare quali sono. Per farlo andate sulla/sulle pagine che danno il problema. apritele ad esempio con firefox. sulla pagina cliccate tasto destro -> inspect. A destra vi si aprirà un debugger. Li andate a cliccare su “console” e troverete gli errori corrispondenti. Con questa informazione potrete trovare dove sono gli url che generano gli errori e correggerli.