WordPress impostare il pannello admin con SSL
da Massimo Della Rovere · pubblicato il 7 Gennaio, 2012 · modificato il 10 Luglio, 2016

In questo articolo vediamo come configurare il protocollo HTTPS e quindi configurare un ambiente SSL (Secure Socket Layer) per proteggere la comunicazione tra il nostro browser e le funzioni svolte nel pannello di amministrazione. Per raggiungere il nostro obiettivo dobbiamo prima agire sul nostro web server ad esempio apache e installare un certificato valido, un volta che la configurazione risulta corretta modificheremo il file di configurazione di WordPress e il file .htaccess presente nella nostra directory public.

Configurazione apache con SSL

Se avete un servizio di hosting che vi da il servizio automaticamente leggete la documentazione del vostro provider che configurerà il vostro account senza intervenire nella configurazione tecnica, se invece siete nella condizione di agire personalmente su apache leggete quanto segue: Per prima cosa bisogna avere un certificato server che possiamo richiedere ad un’organizzazione di certificazione che può essere commerciale o opensource, non è molto importante dato che dobbiamo usarlo solo per uso personale e quindi il particolare di “fiducia” dato dal certificato ci interessa poco. Una comunità opensource che rilascia certificati la potete trovare su http://www.cacert.org/. In ogni caso possiamo anche creare tutto il necessario da soli eseguendo i seguenti passi:

sudo openssl genrsa -out myserver.key 1024
sudo openssl req -new -key myserver.key -out myserver.csr
sudo openssl x509 -req -days 365 -in myserver.csr
     -signkey myserver.key -out myserver.crt

Questi comandi sono serviti per i passi di creazione chiave del server, creazione richiesta di certificazione e per ultimo la creazione del certificato server. Memorizzate questi file in una vostra directory sicura e andate nel file di configurazione di apache dove trovate la parte relativa ai parametri che riguardano il vostro virtual host:

# Definizione virtual host su porta 443
# per attivazione del protocollo SSL

<VirtualHost *:443>
  ServerName sito.com
  SSLEngine on
  SSLCertificateFile /percorso/myserver.crt
  SSLCertificateKeyFile /percorso/myserver.key
</VirtualHost>

NB: Controllare che il server apache abbia il modulo SSL attivo ed sia in ascolto anche sulla porta 443 quindi controllate la riga del file di configurazione:

# Configurazione della porta standard 80
# per le richieste di connessione HTTP

NameVirtualHost *:80
Listen 80

# Configurazione porta di ascolto 443 HTTPS
# solo se il modulo di apache risulta attivo

<IfModule mod_ssl.c>
  NameVirtualHost *:443
  Listen 443
</IfModule>

Una volta effettuate queste operazioni fate ripartite il server web e controllate se il vostro sito è raggiungibile con https://sito.com, se il browser vi da un pagina di attenzione sulla sicurezza potete pure ignorarla dato che come ho già detto precedentemente ne faremo solo un uso personale e no pubblico, alternativa a questo è che compriate un certificato rilasciato da una autority riconosciuta e certificata.

Configurazione WordPress SSL

Adesso però passiamo alla configurazione di wordpress, come avevamo detto prima il sito deve essere raggiungibile solo con il protocollo normale HTTP mentre il pannello di amministrazione lo deve essere solo con protocollo HTTPS. Per quest’ultima situazione wordpress esegue da solo la funzione richiesta l’importante è specificare nel file di configurazionewp-config.php della vostra installazione il seguente codice:

// Forzare l'utilizzo del protocollo SSL sia per
// la parte di collegamento che per quella di admin

define('FORCE_SSL_LOGIN',true);
define('FORCE_SSL_ADMIN',true);

Fatto ciò se adesso tentate di accedere al vostro pannello di amministrazione sarete automaticamente dirottati all’indirizzo giusto che utilizza il protocolllo HTTPS.

Adesso dobbiamo fare in maniera tale che tutte le richieste che ci vengono fatte con il protocollo HTTPS che non siano il pannello di amministrazione devono essere per forza dirottate sull’utilizzo del protocollo normale, questa opzione non è obbligatoria ma raccomandata, per fare ciò dobbiamo modificare il nostro file .htaccess:

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/[_0-9a-zA-Z-]+/wp-(content|admin|includes|login)
RewriteCond %{REQUEST_URI} !^/wp-(content|admin|includes|login)
RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Importante: Le operazioni elencate qui di sopra deve essere prese come dei riferimenti generali, in quanto molte cose possono essere diverse a seconda del sistema operativo installato, le feature a disposizione e la versione di apache disponibile.

2 Commenti

  1. Dalla data di questo articolo e anche dall'ultimo commento è passato diverso tempo e le cose sono cambiate. Adesso un certificato SSL costa poco e quasi tutti gli hosting lo prevedono. Oggi è consigliabile utilizzare HTTPS anche per la SEO.

  2. Grazie per la guida. Peccato che il mio fornitore (come immagino tanti altri di tipo economico) non fornisca il servizio di SSL/HTTPS.

condividi