SSL gratuito per qualsiasi sito Web WordPress

Pubblicato: 2022-03-10
Riepilogo rapido ↬ Se hai un sito di e-commerce, SSL è obbligatorio per elaborare in sicurezza le carte di credito. Ma anche se non stai elaborando pagamenti, dovresti comunque considerare seriamente HTTP (o HTTPS) sicuro, soprattutto ora che ti mostrerò come configurarlo rapidamente, gratuitamente. Iniziamo. In breve, SSL è la "S" in HTTPS. Aggiunge un livello di crittografia a HTTP che garantisce che il destinatario sia effettivamente chi afferma di essere e che solo i destinatari autorizzati possono decrittografare il messaggio per vederne il contenuto.

Se hai un sito di e-commerce, SSL è obbligatorio per elaborare in sicurezza le carte di credito. Ma anche se non stai elaborando pagamenti, dovresti comunque considerare seriamente HTTP (o HTTPS) sicuro, soprattutto ora che ti mostrerò come configurarlo rapidamente, gratuitamente. Iniziamo.

Cos'è SSL e perché dovrei preoccuparmene?

In breve, SSL è la "S" in HTTPS. Aggiunge un livello di crittografia a HTTP che garantisce che il destinatario sia effettivamente chi afferma di essere e che solo i destinatari autorizzati possono decrittografare il messaggio per vederne il contenuto.

Ulteriori letture su SmashingMag:

  • HTTPS ovunque con Nginx, Varnish e Apache
  • Come emettere un nuovo certificato SSL con una vecchia chiave SSL
  • Prepararsi per HTTP/2: una guida per i web designer

Le informazioni sensibili come i numeri di carta di credito, in pratica qualsiasi cosa privata, dovrebbero essere sempre fornite tramite HTTPS. Tuttavia, c'è una tendenza crescente a servire tutti i contenuti tramite HTTPS, come stiamo vedendo sul sito Web di notizie, sui blog, sui motori di ricerca e sui siti Web della maggior parte dei marchi tradizionali. Quindi, anche se il tuo sito web non sta elaborando pagamenti, ci sono buone ragioni per prendere in considerazione HTTPS, alcuni dei quali sono elencati qui:

Altro dopo il salto! Continua a leggere sotto ↓
  • Credibilità . Anche il pubblico non tecnico associa il lucchetto verde nella barra degli indirizzi del browser con fiducia e affidabilità.
  • Protezione con password . Forse il tuo sito web ospita solo video di gattini. Ma se gli utenti accedono al tuo sito Web tramite Wi-Fi con una password che utilizzano anche per l'online banking, stai potenzialmente facilitando una grave violazione della sicurezza trasmettendo pubblicamente tali credenziali.
  • A prova di futuro . Molti siti web sono ancora serviti tramite HTTP, ma c'è una tendenza innegabile verso HTTPS, che aumenterà solo man mano che gli utenti diventeranno sempre più istruiti sulla sicurezza web. Sii dalla parte giusta della storia.
  • SEO . Google ha annunciato ufficialmente che HTTPS viene utilizzato come segnale di ranking. In altre parole, Google premia i siti Web HTTPS aumentando il loro posizionamento nei risultati di ricerca.

Un argomento comune contro HTTPS è che riduce le prestazioni. È vero, il processo di crittografia e decrittografia costa millisecondi aggiuntivi, ma nella maggior parte dei casi è trascurabile, come dimostra il fatto che aziende attente alle prestazioni come Google e Facebook servono tutti i loro contenuti tramite HTTPS. E, vero, HTTPS può esacerbare i problemi di prestazioni esistenti, come molti file CSS forniti individualmente, ma ciò è mitigato seguendo le migliori pratiche di base per le prestazioni. E con l'adozione di HTTP/2, il costo delle prestazioni di HTTPS è ancora più basso. La conclusione è che la riduzione delle prestazioni è un deterrente significativo solo se il tuo sito Web è iperottimizzato o con prestazioni così basse che ogni millisecondo conta.

Come configurare HTTPS gratuitamente

Il primo passaggio per configurare HTTPS gratuitamente è iscriversi a un servizio DNS cloud. Se non hai idea di cosa sia il DNS, ti consiglio di dedicare un minuto a imparare prima di procedere. Il delizioso How DNS Works fa un ottimo lavoro nel scomporlo in un cartone animato divertente. Altrimenti, sappi semplicemente che il DNS è il sistema in base al quale nomi di dominio come example.com (che gli esseri umani comprendono) vengono collegati a indirizzi IP come 104.28.2.167 (che i computer comprendono). Hai molte opzioni, ma io sono un fan di CloudFlare perché è davvero veloce da configurare, la dashboard è intuitiva ed è disponibile un piano gratuito con molte potenti funzionalità.

Configurazione di CloudFlare

Dopo la registrazione per un account CloudFlare, verrai guidato attraverso una semplice procedura guidata per configurare il tuo primo sito Web, che si concluderà con le istruzioni su come accedere al tuo registrar di domini e indirizzare i server dei nomi a CloudFlare. La propagazione della modifica richiederà del tempo, ma una volta completata, CloudFlare ospiterà i record DNS del tuo sito web. Quindi, attiva la funzione "SSL flessibile" di CloudFlare.

Dashboard CloudFlare
Dashboard CloudFlare con impostazione SSL (Visualizza versione grande)

La scelta dell'impostazione "SSL flessibile" è importante perché non richiede l'acquisto e l'installazione del proprio certificato SSL sul server del tuo sito web. Ecco un diagramma di ciò che sta accadendo.

Diagramma SSL flessibile di CloudFlare
Diagramma SSL flessibile CloudFlare (Visualizza versione grande)

Come puoi vedere, CloudFlare funge da intermediario per proteggere il traffico tra il tuo sito Web e il client. Se si trattasse di un sito Web HTML statico, ora saresti in grado di connetterti tramite HTTPS ( https://yourdomain.com ). WordPress, tuttavia, richiede una configurazione aggiuntiva per poter funzionare con il protocollo modificato.

Riconfigurazione di WordPress da HTTP a HTTPS

Dovrai prima aggiornare le impostazioni "Indirizzo WordPress" e "Indirizzo sito" nella dashboard, in "Impostazioni" → "Generale". Quando lo fai, dovrai accedere nuovamente alla dashboard.

Dashboard di WordPress
Dashboard di WordPress con impostazioni URL (Visualizza versione grande)

Procedi con cautela. Se aggiorni queste impostazioni prematuramente, rischi di bloccarti. Ad esempio, se il sito Web non è ancora configurato correttamente per HTTPS e le impostazioni vengono aggiornate, potresti causare un ciclo di reindirizzamento che interrompe il sito Web e impedisce l'accesso alla dashboard.

A questo punto dovresti essere in grado di visitare la home page del sito Web tramite HTTPS. Tuttavia, i collegamenti alle pagine punteranno comunque agli URL HTTP. WordPress memorizza i collegamenti a pagine e immagini come URL assoluti, il che significa che l'URL completo, incluso il protocollo, viene salvato nel database. Per garantire che l'intero sito Web sia servito in modo coerente tramite HTTPS (senza sputare avvisi sui contenuti misti), dovrai aggiornare i tuoi contenuti legacy.

Aggiornamento dei contenuti legacy

Su un piccolo sito Web con poche pagine, l'opzione più rapida potrebbe essere semplicemente aggiornare manualmente gli URL modificando le pagine esistenti nell'interfaccia di amministrazione. Se il sito Web è di grandi dimensioni o ha un blog molto attivo, è probabile che la modifica manuale non sia pratica. Se il tuo host fornisce phpMyAdmin o qualche altra interfaccia per eseguire query MySQL, puoi farlo abbastanza facilmente con alcune query MySQL nella scheda SQL. In alternativa, puoi seguire le istruzioni di The Customize Windows per farlo dalla riga di comando.

A rischio di affermare l'ovvio, sostituisci yourdomain.com nelle seguenti query con il tuo dominio effettivo . Inoltre, se hai personalizzato il prefisso della tabella di WordPress, sostituisci wp_ con il prefisso pertinente.

Innanzitutto, aggiorna gli URL dei post e delle pagine.

 UPDATE wp_posts SET guid = replace(guid, 'https://yourdomain.com','https://yourdomain.com');

[AGGIORNAMENTO: come discusso nei commenti, il campo guid non deve essere modificato.]

Aggiorna anche la tabella wp_postmeta .

 UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://yourdomain.com','https://yourdomain.com');

Infine, aggiorna i contenuti effettivi di post o pagine. Questo aggiornerà tutti i backlink a HTTPS.

 UPDATE wp_posts SET post_content = REPLACE(post_content, 'https://yourdomain.com', 'https://yourdomain.com');

Dopo aver eseguito queste query, vorrai aggiornare i tuoi permalink andando su "Impostazioni" → "Permalink". È sufficiente ripristinare l'impostazione predefinita, quindi ripristinarla su qualsiasi impostazione originariamente utilizzata.

Ora dovresti essere in grado di fare clic sui menu e sui collegamenti in tutto il sito Web e il protocollo dovrebbe rimanere HTTPS.

Risoluzione dei problemi relativi agli avvisi di contenuto misto

A seconda del tema e dei plug-in in uso, potresti ricevere un avviso nella barra degli indirizzi che indica che alcune risorse non vengono servite in modo sicuro. Se gli errori sono associati alle risorse aggiunte dal tuo tema o plug-in personalizzato, assicurati di accodare correttamente i file JavaScript e CSS e di non codificare gli URL che iniziano con HTTP . La maggior parte dei browser ti consente di espandere l'avviso per mostrare le richieste specifiche che causano l'errore. Potresti anche provare un plug-in gratuito come SSL Insecure Content Fixer, che tenterà di correggere i plug-in di terze parti che non sono riusciti a farlo.

A questo punto, dovresti vedere il lucchetto verde nella barra degli URL quando visiti il ​​tuo sito web. Se non stai utilizzando un plug-in di e-commerce come WooCommerce o WP eCommerce, il gioco è fatto! Se lo sei, c'è un ultimo passo importante.

Ottenere SSL flessibile per funzionare con i plugin di e-commerce

WordPress ha una funzione principale denominata is_SSL() su cui i plugin si basano per determinare se il traffico è crittografato con SSL. Con il solo metodo sopra, questa funzione restituirà false perché la crittografia è solo tra CloudFlare e il client. Il traffico con cui PHP interagisce non è crittografato, quindi il super globale che quella funzione controlla (cioè $_SERVER['HTTPS'] ) non sarebbe utile. Per il nostro scopo, la variabile rilevante è $_SERVER['HTTP_X_FORWARDED_PROTO'] , che, al momento della scrittura, WordPress non riconosce. La richiesta di modifica è di vecchia data, ma deve ancora essere risolta.

Fortunatamente , un plug-in gratuito risolverà questo problema immediatamente, CloudFlare Flexible SSL. Installa semplicemente il plugin e attivalo. Ricorda che questa tecnica non aggiunge ulteriore sicurezza . Il traffico tra CloudFlare e il server del tuo sito Web non è ancora crittografato e, pertanto, è ancora vulnerabile allo sniffing.

SSL flessibile non è SSL completo

L'iniziativa "Universal SSL" di CloudFlare è un tentativo interessante di rendere Internet più sicuro, ma non è privo di controversie. La preoccupazione principale è che l'SSL flessibile non crittografa la seconda metà del viaggio del traffico (verso il tuo server), tuttavia il browser attualmente mostra ancora lo stesso lucchetto verde che siamo arrivati ​​ad associare all'SSL completo . CloudFlare offre la seguente giustificazione sul suo blog:

Avere una crittografia all'avanguardia potrebbe non sembrare importante per un piccolo blog, ma è fondamentale per far avanzare il futuro crittografato per impostazione predefinita di Internet. Ogni byte, per quanto apparentemente banale, che scorre crittografato su Internet rende più difficile per coloro che desiderano intercettare, limitare o censurare il Web. In altre parole, garantire che il tuo blog personale sia disponibile tramite HTTPS rende più probabile che un'organizzazione per i diritti umani, un servizio di social media o un giornalista indipendente siano accessibili in tutto il mondo. Insieme possiamo fare grandi cose.

Nel bene e nel male, SSL flessibile è qui e Internet dovrà adattarsi. Nel frattempo, l'onere spetta ai proprietari di siti Web di essere istruiti e di prendere decisioni responsabili.

Reindirizzamento delle richieste HTTP a HTTPS

L'abilitazione di un sito Web per l'esecuzione su HTTPS non garantisce che le richieste utilizzino effettivamente il protocollo. Se il tuo sito web è in circolazione da un po' di tempo, gli utenti potrebbero averlo già aggiunto ai preferiti con HTTP. Puoi reindirizzare tutte le richieste HTTP al nuovo protocollo aggiungendo il seguente snippet nella parte superiore del file .htaccess nella radice del tuo sito web. Se il file non esiste, puoi tranquillamente aggiungerlo.

 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://yourdomain.com/$1 [R=301,L] </IfModule>

Se esiste già un file .htaccess , fai attenzione a non modificare nulla tra le righe # BEGIN WordPress e # END WordPress in quel file. Quelle righe sono gestite da WordPress e ogni volta che i permalink vengono aggiornati, i contenuti in quella sezione vengono sovrascritti.

Congratulazioni

Aggiornando il tuo sito Web a HTTPS, hai migliorato il tuo sito Web, protetto gli utenti e partecipato al progresso di Internet. E non ti è costato nulla!