In questo post abbiamo visto come configurare LAMP. Adesso vedremo come abilitare SSL sul nostro server Web Apache.
Per prima cosa è necessario generare un certificato SSL. A tale scopo possiamo utilizzare openSSL:
nightfly@nightbox:/etc/apache2$ sudo openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem
dove il parametro -x509 indica proprio che si tratta di un certificato appartenente allo standard X.509 ed il parametro -days specifica la durata della validità relativa al certificato stesso.
Una volta digitato il comando sopra citato verrà richiesto l'inserimento di tutta una serie di parametri necessari per caratterizzare il certificato stesso, quali nazione, città, nome della società, indirizzo e-mail, ecc.
Ora occorre abilitare il modulo SSL di Apache, sfruttando il tool a2enmod (apache2 enable module):
nightfly@nightbox:/etc/apache2$ sudo a2enmod ssl
E' necessario, inoltre, abilitare il virtual host SSL:
nightfly@nightbox:/etc/apache2$ sudo a2ensite default-ssl
Fatto ciò sarà necessario mettere in ascolto Apache sulla porta 443 (HTTPS), editando il file ports presente nella DIR /etc/apache2/ports. Il file in questione dovrà apparire nel seguente modo:
nightfly@nightbox:/etc/apache2$ cat ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
</IfModule>
Posizioniamoci ora sulla cartella available-sites:
nightfly@nightbox:/etc/apache2$ cd sites-available/
ed editiamo il file default-ssl aggiungendo le seguenti righe di codice:
SSLEngine On
SSLCertificateFile /etc/apache2/apache.pem
e rimuovendo:
SSLCertificateFile /etc/ssl/private/ssl-cert-snakeoil.key
Riavviamo Apache mediante il comando:
nightfly@nightbox:/etc/apache2$ /etc/init.d/apache2 restart
E colleghiamoci al nostro server anteponendo HTTPS (e non HTTP) all'indirizzo. Accettiamo il certificato (anche se il browser lo segnala come inattendibile)... et voilà, siamo dentro il nostro sito Web.
A presto.