Configurare connessioni https con apache2 e mod_ssl
Questo articolo illustra come abilitare il protocollo https con il web server apache (versione 2.x).
La procedura e' molto semplice ed e' strutturata in questo modo:
- Creazione del certificato
- Installazione del modulo mod_ssl
- Configurazione del server web e quindi del sito
Vediamo nel dettaglio le varie fasi:
Per creare il certificato utilizzeremo l'applicazione openssl
Se state utilizzando una distribuzione linux Debian/Ubuntu potrete installarla con questo comando
apt-get install openssl
Con Fedora/Centos invece si installa cosi'
yum install openssl
Se non disponete di un pacchetto precompilato potrete compilare il sorgente di openssl.
Compilazione ed installazione vengono eseguiti nel modo 'classico'
gunzip openssl-0.9.8k.tar.gz
tar xvf openssl-0.9.8k.tar
cd openssl-0.9.8k
sh ./config
make make test
make install
Dopodiche' dovremmo creare il certificato. Ecco il comando:
openssl req -newkey rsa:1024 -x509 -nodes -days 365 -out /etc/apache2.pem -keyout /etc/apache2.pem
N.B. Nell'opzione days e' specificato il valore 365 quindi il certificato sara' valido per 1 anno
Occupiamoci ora del modulo ssl e configuriamo apache.
In Debian/Ubuntu il modulo ssl e' installato di default e dovra' essere solamente abilitato con
a2enmod ssl
Gli utenti che utilizzano Fedora invece per abilitarlo dovranno inserire nel file /etc/httpd/conf.d/ssl.conf questa direttiva
LoadModule ssl_module modules/mod_ssl.so
N.B. Se mod_ssl non e' installato, bastera' digitare questo comando "yum install mod_ssl"
Il protocollo https accetta connessioni sulla porta 443 (a differenza di http che utilizza l'80).
Gli utenti Debian/Ubuntu dovranno aggiugere in /etc/apache2/ports.conf
Listen 443
Gli utenti Fedora invece dovranno scrivere la suddetta direttiva in /etc/httpd/conf.d/ssl.conf
Non rimane che configurare il VirtualHost
<VirtualHost www.lucaercoli.it:443>
DocumentRoot "/var/www/sito/htdocs"
ServerName www.lucaercoli.itSSLEngine on
SSLCertificateFile /etc/apache2.pem
</VirtualHost>
N.B Cambiate il nome del virtualhost, del server e la documentroot del sito
e riavviare apache
/etc/init.d/httpd restart (Fedora)
/etc/init.d/apache2 restart (Debian e Ubuntu)