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.