Fabrizio Regalli

Fabrizio Regalli's blog

  • Home
  • Chi sono
  • Debian Life
  • Pubblicità
  • Contatti
You are here: Home / sicurezza / Wordpress SSL

WordPress SSL

3 Febbraio 2011 Di Fabrizio Regalli - 1 Comment

Pin It

Ciao,

come vi avevo scritto nella guida precedente in merito alla sicurezza di wodpress sono oggi a proporvi una guida per rendere sicura la parte amministrativa di wordpress, usando OpenSSL su webserver apache2 di Debian.

Inutile dirvi che esistono plugin creati appositamente per lo scopo ma dato che apache e openssl ci forniscono tutti gli strumenti necessari reputo sia meglio utilizzare questi ultimi.

wordpress mette a disposizione due modi per usare ssl aggiungendo una delle due righe seguenti nel file wp-config.php

define(‘FORCE_SSL_LOGIN’, true); –> forza l’uso di OpenSSL solo per il login

define(‘FORCE_SSL_ADMIN’, true); –> forza l’ uso di OpenSSL per il login e per la parte amministrativa

Io personalmente uso il secondo perchè lo ritengo piu’ sicuro.

Creazione certificati

Per la corretta configurazione, abbiamo bisogno di un certificato SSL che può essere creato gratuitamente da vari siti. Io ho usato StartCom ma nessuno vieta di usarne altri tipo cacert.org oppure trustico.it

Generiamo la nostra KEY e il nostro CSR

cd /etc/ssl/private

e digitate

openssl genrsa -out www.ilvostrodominio.it.key 2048

Il comando appena digitato creerà una chiave della lunghezza di 2048 bit. Potete sostituire il 2048 con 4096 se volete una chiave maggiormente sicura.
IMPORTANTE: durante la creazione della chiave, verrà richiesta una password: se la impostate, ogni qualvolta tenterete di accedere alla vostra area protetta, vi verrà chiesta la password che avete creato. Se non desiderate alcuna password, digitate enter e proseguite.

Ora che abbiamo creato la chiave, creiamo il certificato digitando:

openssl req -new -key /etc/ssl/private/www.ilvostrodominio.it.key -out www.ilvostrodominio.it.csr -sha1

Vi verranno chieste le informazioni necessarie tipo nome, città, stato etc. etc.
Prestate attenzione al campo Common Name: dev’essere identico al nome di dominio del sito. Esempio. Se il sito si chiamerà www.ilvostrodominio.it il CN dovrà essere www.ilvostrodominio.it e non solamente ilvostrodominio.it

E’ il momento di usare il certificato sul sito che abbiamo scelto che nel mio caso è StartCom
Dovete registrartvi, aggiungere il vostro dominio e scegliere le modalità di verifica.
Se scegliete “e-mail” verrà verificato l’ indirizzo e-mail postmaster@ilvostrodominio.it (o altri due indirizzi prestabiliti)
Una volta verificati, dovete copiare il contenuto del file /etc/ssl/private/www.ilvostrodominio.it.csr all’ interno del box che viene visualizzato andando su “Certification Wizard” , saltando la parte di creazione del nostro .csr (perchè l’ abbiamo già creato in precedenza)
Ora dobbiamo salvare i CA di StartSSL: per fare questo, spostiamoci nella directory /etc/ssl/certs e digitiamo

wget https://www.startssl.com/certs/ca.pem
wget https://www.startssl.com/certs/sub.class1.server.ca.pem

Configurazione di Apache2

E’ il turno di configurare il virtualhost per apache2, il mio è questo:

ServerName www.ilvostrosito.it
DocumentRoot /la/dir/di/www.ilvostrosito.it
ErrorLog /var/log/apache2/ilvostrosito.it_ssl_error_log
CustomLog /var/log/apache2/ilvostrosito.it_ssl_access_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
DirectoryIndex index.html index.htm index.php index.php4 index.php5

RewriteEngine On
#       RewriteRule !wp-login(.*) - [C]
RewriteRule !^/wp-(admin|login|register)(.*) - [C]
RewriteRule ^/(.*) http://www.ilvostrosito.it/$1 [QSA,L]

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH
SSLCertificateFile /etc/ssl/certs/www.ilvostrosito.it.crt
SSLCertificateKeyFile /etc/ssl/certs/www.ilvostrosito.it.key
SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.startcom.pem
SSLCACertificateFile /etc/ssl/certs/ca.pem
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown

Faccio notare che la condizione di rewrite (da RewriteEngine ON a RewriteRule ^/(.*) http://www.ilvostrosito.it/$1 [QSA,L] ) l’ho inserita per fare in modo che, una volta abbondonata la parte amministrativa, il sito continui ad usare http anzichè https.
Se ora provate ad accedere alla parte amministrativa del vostro sito (www.vostrosito.it/wp-admin) vi verrà chiesto di accettare il certificato e, se tutto ha funzionato a dovere, dovreste vedere nell’ url la “s” finale di https 🙂

Errori comuni

Se nel vostro log di apache riscontrate un messaggio come questo

[warn] RSA server certificate CommonName (CN) ‘…’ does NOT match server name!?

significa che durante la creazione del certificato, avete inserito un CN diverso dal nome del sito.

Filed Under: sicurezza, wordpress Tagged With: admin, openssl, ssl, wodpress sicuro, wordpress

Iscriviti alla Newsletter

Promesso: niente spam!! Al massimo riceverai una mail al giorno, non di più. In questo modo sari sempre aggiornato sulle novità di questo sito.

Segui @riztwi

About Fabrizio Regalli

Mi occupo d'informatica che è anche la mia passione. Attualmente lavoro presso Fastweb S.p.A. come consulente. Nel tempo libero, quando posso, mi dedico alla creazione di siti web, blog, e in generale mi piace sperimentare tutto ciò che riguarda l' opensource. Inoltre, offro consulenza sui principali CMS (jooomla, wodrpress, drupal) Per qualsiasi altra informazione non scritta in queste poche righe di presentazione, non esitate a contattarmi.

Chi sono

Sidebar Profile

Mi chiamo Fabrizio Regalli e mi occupo d'informatica che è anche la mia passione. Attualmente lavoro presso Fastweb S.p.A. come consulente. Nel tempo libero, quando posso, mi dedico alla creazione di siti web, blog, e in generale mi piace sperimentare tutto ciò che riguarda l' opensource.

MI TROVI SU

  • Facebook
  • Google+
  • Linkedin
  • RSS
  • Twitter
  • Vimeo

Il blog

Nasce con l' intenzione di condividere con voi opinioni e idee riguardanti principalmente l' informatica. In alcuni casi ho trattato argomenti d'attualità.

Archivi

GOOGLE PLUS

Iscriviti alla Newsletter

Rimani sempre aggiornato sulle novità di questo blog. Se mi comunichi il tuo indirizzo e-mail, riceverai la newsletter periodica.

Segui @riztwi

Commenti recenti

  • Alessandro De Pandis su grub rescue
  • Paolo Paolucci su Truffa di capodanno a Courmayeur [Aggiornato Dic. 2013]
  • Fabrizio Regalli su MySQL replication – master e slave
  • Davide Marchi su MySQL replication – master e slave
  • Fabrizio Regalli su MySQL replication – master e slave

Articoli recenti

  • Amazon Web Service summit a Milano: buona la prima.
  • IFTTT Internet, il Web al tuo servizio
  • Indicizzare pagine Web dopo le novità Google
  • geekfriend aiutami tu!
  • Percona Xtrabackup – Copia di MySQL a caldo

Tag

2011 admin Adsense android aprilia awstats biker blog boinc manager capodanno chiavetta compiz Danilo Desole debian dkim fantec festival gnome grub2 iperchè iphone linux opendkim openssl repository reprepro shiver sicurezza squeeze ssh ssl statistiche web tumbgreyspf tunneling unstable usb valsesia villa castelbarco web whitelist wodpress sicuro wordpress wordpress sicuro worldcommunity wptouch
themefuse
Thesis

Copyright © 2009-2013 Fabrizio Regalli