Opzioni per SSL in WordPress

Con l'attenzione sempre crescente sulla sicurezza Web, i certificati SSL hanno iniziato a diventare una pratica comune quando si impostano i siti Web. 

Questo articolo ti mostrerà come implementare SSL nel tuo sito Web WordPress ma non fornirai dettagli su come acquistare e impostare i certificati con il tuo host web, poiché questo cambia da provider a provider. 

Detto questo, la maggior parte degli host web vende e installa certificati SSL per i propri clienti a un costo relativamente basso. Per apportare una qualsiasi delle modifiche descritte in questo articolo è necessario disporre già di un certificato SSL configurato sul server web.

Cos'è SSL?

SSL.com descrive SSL come:

SSL (Secure Sockets Layer) è la tecnologia di sicurezza standard per stabilire un collegamento crittografato tra un server Web e un browser. Questo collegamento garantisce che tutti i dati trasmessi tra il server Web e i browser rimangano privati ​​e integri.

Perché usare SSL?

Sicurezza

Non esiste una cosa "troppo sicura". SSL ora è più facile e più economico che mai da implementare. Se si dispone di un sito Web di e-commerce o si stanno elaborando dati utente, è essenziale. SSL non è solo per i siti di e-commerce - assolutamente qualsiasi sito web può usarlo.

Fiducia

Avere un certificato SSL valido è un buon segnale di fiducia da inviare ai visitatori del tuo sito web. Molti utenti ora cercheranno https nella barra degli indirizzi del browser.

SEO

Ciò si accompagna alla fiducia: Google ha ora affermato che sta iniziando a utilizzare SSL come segnale di classificazione.

Un disclaimer rapido

Come sempre, con qualsiasi modifica su un sito Web è necessario eseguire prima un backup completo e lavorare su un sito Web di gestione temporanea prima di apportare modifiche a un sito Web attivo.

Protezione dell'amministratore di WordPress

Essere in grado di proteggere il back-end di WordPress è in realtà una funzionalità integrata nel core di WordPress. Per abilitare l'opzione, dovrai modificare il tuo wp-config.php file che si trova nella radice della tua installazione di WordPress. È importante eseguire sempre un backup di questo file prima di apportare modifiche poiché contiene dati cruciali che consentono l'installazione di WordPress.

Una volta modificato questo file, il FORCE_SSL_ADMIN costante deve essere impostato su vero. Il codice completo è simile a questo:

define ('FORCE_SSL_ADMIN', true);

Una volta che questa riga è stata aggiunta (può essere aggiunta in fondo al file wp-config.php file) assicurati di salvare il file. Un aggiornamento dovrebbe mostrarlo ora caricato su HTTPS.

SSL utilizzando il plugin HTTPS WordPress

WordPress HTTPS è una scelta popolare tra gli utenti che desiderano utilizzare SSL sul proprio sito WordPress. Il plugin offre un modo semplice per forzare SSL dall'amministratore di WordPress. È molto utile se vuoi proteggere solo alcune parti del tuo sito web (post o pagine) ma puoi anche utilizzarlo per proteggere l'intero sito e rimuovere automaticamente elementi non sicuri.

Per installare il plugin, dal dashboard di WordPress, vai su Plugin> Aggiungi nuovo - quindi cerca "WordPress HTTPS" e fai clic su "Installa".

Protezione di singoli post / pagine

Una volta installato, ogni post / pagina avrà un metabox personalizzato che ti darà la possibilità di proteggere il post e (facoltativamente) qualsiasi post secondario. Verifica quale opzione si applica a te e salva il tuo post. Questo post (e i post secondari se l'hai verificato) verranno ora pubblicati su HTTPS.

Protezione di tutto il sito

La protezione dell'intero sito può essere eseguita dalla pagina delle impostazioni HTTPS di WordPress. Facendo clic sull'icona del menu di WordPress HTTPS dal dashboard di WordPress verrà visualizzata la pagina delle impostazioni: visualizzerò le impostazioni più comuni:

  • Forza l'amministrazione SSL: Questa è una casella di controllo, se hai già seguito la sezione "Protezione dell'amministratore di WordPress" di questo articolo, questo sarà spuntato di default. Se non lo hai fatto, spuntando questo si assicurerà l'amministratore di WordPress.
  • Forza SSL esclusivamente: Se si attiva questa opzione, qualsiasi pagina a cui non è stato detto di utilizzare SSL reindirizzerà a HTTP standard.
  • Rimuovi elementi non sicuri: Se lo controlli, rimuoverà tutti gli elementi dalla pagina che sono inaccessibili su HTTPS. Lo svantaggio di questa impostazione è che potrebbe violare i plug-in per fare affidamento su risorse esterne: utilizzalo con cautela.

Infine, nella parte inferiore di questa pagina c'è un campo di testo chiamato "Filtri URL". Questa parte ti consente di proteggere sezioni del tuo sito web in base all'URL (accetta anche espressioni regolari). L'esempio che il plugin fornisce qui è se si desidera proteggere tutti gli URL che iniziano con /memorizzare/

Per fare questo devi digitare /memorizzare/ nella casella di testo e fare clic su "Salva modifiche". Per ciascun nuovo filtro creato dovrai iniziare una nuova riga. L'impostazione "Filtri sicuri" può anche essere utilizzata per rendere il plugin sicuro per l'intero sito Web. Basta aggiungere un filtro che sia una barra (/). Ora chiunque tenti di accedere tramite HTTP verrà reindirizzato a HTTPS. È una buona idea modificare anche le impostazioni standard dell'URL di WordPress se stai servendo l'intero sito web tramite HTTPS. Questo è spiegato nella prossima sezione dell'articolo.

Aggiornare: Gli utenti hanno segnalato problemi con questo plug-in e WordPress 4.0: è consigliabile non utilizzare questa soluzione finché questi problemi non vengono risolti. Si prega di vedere sotto per una soluzione plugin alternativa.

SSL che utilizza il plugin di sicurezza iThemes

iThemes Security è uno dei plug-in di sicurezza WordPress più popolari disponibili. Ha molte funzionalità per proteggere il tuo sito WordPress, inclusa l'opzione per utilizzare HTTPS.

avvertimento: Questo plug-in è molto potente e alcune impostazioni potrebbero bloccare l'accesso al tuo sito web. Per la configurazione di base del plugin ti consiglio di guardare il video ufficiale di iThemes.

Una volta installato e configurato il plug-in (vedi sopra il video), accedi al tuo dashboard WordPress, fai clic sulla scheda "Sicurezza" e quindi sul link "Impostazioni".

Dal menu a discesa "Vai a", fai clic su "Secure Socket Layers (SSL)" per accedere alla sezione corretta delle impostazioni.

Ci sono tre impostazioni in questa sezione:

  1. Modalità SSL front-end: questo menu a discesa ha tre opzioni:
  • Off: nessun front-end SSL
  • Per contenuto: puoi scegliere post specifici da proteggere tramite SSL
  • Intero sito: tutto il front-end è protetto
  • Forza SSL per il login: selezionando questa casella si intende che tutti gli accessi sono serviti su HTTPS
  • Forza SSL per Dashboard: selezionando questa casella il dashboard di WordPress verrà forzato a utilizzare HTTPS
  • La parte più utile del plugin è la possibilità di proteggere contenuti specifici sul front-end; se si desidera proteggere l'intero sito Web, la soluzione .htaccess è probabilmente la scommessa più sicura.

    Una volta che hai fatto le tue opzioni qui, assicurati di fare clic sul pulsante "Salva tutte le modifiche".

    Se hai scelto l'opzione "per contenuto", vedrai una casella di controllo all'interno del metabox di pubblicazione sui post. Basta controllare questo e fare clic su "Aggiorna" per avere questa pagina protetta.

    I limiti dell'utilizzo della sicurezza iThemes per SSL è che non consente i caratteri jolly, quindi non è possibile creare regole generali.

    SSL usando il codice

    Questo metodo è utile per tutti coloro che desiderano pubblicare l'intero sito su HTTPS. In sostanza, ciò che dobbiamo fare qui è reindirizzare tutto il traffico da HTTP a HTTPS, usando il codice 301 (permanentemente spostato). Questo può essere fatto con PHP, ma il mio metodo preferito è quello di usare .htaccess. Per far funzionare questa soluzione, avrai bisogno di un host Apache con mod_rewrite abilitato - la maggior parte degli host Linux lo sono, ma chiedi al tuo host prima di apportare modifiche.

    Prima di fare qualsiasi .htaccess modifiche, ci sono alcune impostazioni di WordPress che dobbiamo cambiare. Dalla dashboard di WordPress, vai su Impostazioni> Generale. Sotto "Indirizzo WordPress (URL)" e "Indirizzo sito (URL)", è necessario modificare l'indirizzo Web in modo che invece di http://www.tuodominio.com si dice https://www.tuodominio.com (notare il https). Una volta fatto, scorri verso il basso e fai clic sul pulsante "Salva modifiche". Questo indica a WordPress di utilizzare HTTPS in tutti gli URL, ma non impedisce ancora alle persone di accedere al tuo sito web usando HTTP. Questo è dove il .htaccess il file arriva.

    Se hai permalink abilitati, allora avrai già un .htaccess file presente nella directory principale della tua installazione di WordPress. Se non lo fai, dovrai crearne uno: per farlo, crea un nuovo file con il nome .htaccess - questo file non dovrebbe avere altro nome o estensione. .htaccess i file sono dot-file o file nascosti quindi potrebbe essere necessario abilitare la visualizzazione di file nascosti nel sistema operativo per vederli.

    Quindi, apri il tuo .htaccess file con il tuo editor di testo di scelta. Se non hai permalink abilitato allora il tuo .htaccess il file potrebbe essere vuoto Se hai permalink abilitati allora potresti già avere del codice lì che assomiglia a questo:

    # INIZIA WordPress  RewriteEngine Su RewriteBase / secure / RewriteRule ^ index \ .php $ - [L] RewriteCond% REQUEST_FILENAME! -F RewriteCond% REQUEST_FILENAME! -D RewriteRule. /secure/index.php [L]  # END WordPress

    Stiamo per aggiungere altro codice qui. Direttamente sopra il codice standard di WordPress, incolla quanto segue:

    # Inizia HTTPS  RewriteEngine su RewriteCond% SERVER_PORT 80 RewriteRule ^ (. *) $ Https://www.yourdomain.com/$1 [R, L]  # END HTTPS

    Ricordati di sostituire https://www.yourdomain.com/ con il tuo vero nome di dominio. Se hai un vuoto .htaccess file quindi basta inserire il codice direttamente nel file.

    La prima e l'ultima riga di questo codice con il simbolo dell'hash (#) sono commenti e sono lì per rendere il codice più leggibile. Il sta controllando che il mod_rewrite il modulo è abilitato in quanto questo codice si basa su mod_rewrite per il reindirizzamento. Ci assicuriamo quindi che RewriteEngine sia impostato su On in quanto abbiamo bisogno del motore di riscrittura per creare i nostri reindirizzamenti. Successivamente, impostiamo una condizione per la nostra riscrittura, il che significa che la regola che creiamo verrà eseguita solo se vi si accede sulla porta 80 (la porta 80 è la porta HTTP standard). Infine, RewriteRule sta reindirizzando gli utenti alla versione HTTPS del dominio.

    Per verificare che funzioni correttamente, prova a visitare il tuo sito utilizzando un URL HTTP: se cambia automaticamente in HTTPS, funziona correttamente.

    Quale soluzione dovremmo usare?

    Non c'è una risposta giusta o sbagliata qui. Si potrebbe sostenere che basarsi su un plug-in per una parte così integrale del proprio sito Web potrebbe non essere l'idea migliore, come se il plugin fosse disabilitato, cancellato o con un aggiornamento non corretto, quindi potrebbe avere alcune gravi conseguenze per il tuo sito web. 

    Detto questo, il plugin HTTPS di WordPress ha una buona reputazione con molti download ed è naturalmente open source. L'utilizzo del plug-in HTTPS di WordPress è il modo più semplice se si desidera impostare solo alcune aree del proprio sito Web come HTTPS.

    D'altro canto, il metodo del codice è semplice e semplice se si ha la comodità di apportare alcune semplici modifiche ai file ed è un metodo affidabile per eseguire l'intero sito Web su HTTPS.

    Alcuni trucchi per sviluppatori

    Affinché il tuo sito web SSL sia valido, tutti i tuoi contenuti devono essere inviati anche su SSL. Questo include, ma non è limitato a script, caratteri, fogli di stile, incorporamenti e immagini. Alcune agenzie pubblicitarie non inviano ancora i contenuti su HTTPS, quindi se questo è il caso non hanno molta scelta, anche se è possibile avere alcune pagine HTTPS e altri HTTP come spiegato in precedenza nell'articolo.

    Per evitare questo mal di testa, puoi utilizzare un URL relativo al protocollo. Ad esempio, supponiamo di richiedere il famoso carattere web di Google "Open Sans":

    Si noti la mancanza di HTTP o HTTPS nella parte anteriore di quell'URL? ciò che fa è richiedere la risorsa usando lo stesso protocollo della pagina. Pertanto, se utilizzi HTTPS, richiederà automaticamente la versione HTTPS del carattere web. Se la versione HTTPS non esiste, utilizzerà HTTP. Ci sono alcuni piccoli avvertimenti a questa tecnica, come spiegato in un articolo di Paul Irish. Per la parte migliore, questo funziona benissimo e risolverà alcuni mal di testa - funziona anche in CSS.

    Debug degli errori HTTPS

    Gli errori HTTPS sono spesso causati dalla pagina che serve anche contenuti non HTTPS. Per scoprire il contenuto offensivo, è possibile utilizzare Google Chrome per eseguire il debug.

    Per identificare una pagina in errore, in Google Chrome vedrai un triangolo giallo sopra il lucchetto nella barra degli indirizzi. Cliccando su questo mostrerà l'errore esatto come mostrato di seguito:

    Per scoprire il contenuto offensivo in questa pagina in modo che possa essere corretto, seleziona Visualizza >> Developer >> Console JavaScript. Ora dovresti vedere alcuni errori come quelli mostrati di seguito:

    Questo errore mostra il file esatto che causa il problema (in questo caso http://en.support.files.wordpress.com/2008/12/def-avatar.png) e il numero di riga in cui appare il contenuto ( 316). Questo contenuto dovrebbe semplicemente essere modificato in HTTPS (fornendo al server il contenuto è su HTTPS supportato) o utilizzare un URL relativo al protocollo come spiegato in precedenza in questo articolo.

    Conclusione

    Ora sarai in grado di prendere una decisione su quale sia il metodo migliore per utilizzare HTTPS sul tuo sito Web WordPress e attuare la tua soluzione preferita.