Mise en place d’une sécurisation SSL obligatoire pour la connexion à un hôte virtuel existant.
Exemple de configuration existante :
cat /etc/apache2/sites-available/example.com
<VirtualHost 123.123.123.123:80>
ServerName example.com
DocumentRoot /home/www/example.com/web/web
## Logs
CustomLog /home/www/example.com/log/apache/access.log combined env=!no_log
ErrorLog /home/www/example.com/log/apache/error.log
## / Logs
</VirtualHost>
Activation du module SSL de Apache si nécessaire :
a2enmod ssl
Modifications à apporter sur la configuration SSL du domaine à partir de la configuration existante :
cp /etc/apache2/sites-available/example.com /etc/apache2/sites-available/example.com-ssl
vi /etc/apache2/sites-available/example.com-ssl
<IfModule mod_ssl.c>
<VirtualHost 123.123.123.123:443>
ServerName example.com
DocumentRoot /home/www/example.com/web/web
## Logs
CustomLog /home/www/example.com/log/apache/access.log combined env=!no_log
ErrorLog /home/www/example.com/log/apache/error.log
## / Logs
## SSL
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
## / SSL
</VirtualHost>
</IfModule>
Modifications à apporter sur la configuration de base afin de forcer le renvoi de HTTP vers HTTPS :
vi /etc/apache2/sites-available/example.com
<VirtualHost 123.123.123.123:80>
ServerName example.com
DocumentRoot /home/www/common/error
Redirect permanent / https://example.com
</VirtualHost>
Activation de la configuration SSL et contrôle de l’opération :
a2ensite example.com-ssl
apache2ctl graceful
netstat -tap | grep https
doit afficher :
tcp6 0 0 [::]:https [::]:* LISTEN 1386/apache2
et la connexion vers http://example.com doit être aussitôt renvoyée vers https://example.com.