SSL sous Apache 2

Un article de Wiki Lambert Nicolas - Quement Julien.

Jump to: navigation, search

Sommaire

Comment installer le support SSL sur Apache 2 ?

ssl sous apache 2

Basé sur un cas Debian/Sarge.

Wiki original : BxLUG

1. Création des certificats

Sous Debian Sarge, la commande :

apache2-ssl-certificate

génère gentillement pour vous les certificats pour votre site. Il est également possible de les générer soit-même, ou d'utiliser des certificats venant d'ailleurs. (à compléter par qui veut)

Sous Debian Etch, la commande :

openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem

chmod 600 /etc/apache2/ssl/apache.pem

2. Configuration de Apache

Apache 2 est installé avec le module ssl sous Sarge. Il ne s'agit pas d'un paquet supplémentaire.

Il suffit de le charger soit :

  • en créant à la main deux liens symboliques entre /etc/apache2/mods-enabled/ et ssl.conf et ssl.load (qui se trouvent dans le répertoire /etc/apache2/mods-available/ )
  • soit en utilisant a2enmod ssl qui fait la même chose [1] !

Il vous faut ensuite éditer le fichier ssl.conf. Ajouter simplement une ligne à la fin du fichier (avant le </IfModule> pour faire ça proprement):

SSLCertificateFile /etc/apache2/ssl/apache.pem [2]


Ensuite, ajoutez au fichier ports.conf la ligne suivante :

Listen 443

3. Configuration de votre VirtualHost

Deux possibilités :

  • a2ensite ssl.conf : crée un VirtualHost "SSL aware" [3]
  • créez un VirtualHost contenant la directive SSLEngine on, par exemple en ajoutant une section dans /etc/apache2/sites-available/default.

Exemple :

 NameVirtualHost *:443
 ...
 
 <VirtualHost *:443>
       ServerAdmin yourmail@mail.com
       SSLEngine on
 
       DocumentRoot /var/www/
       <Directory />
               Options FollowSymLinks
               AllowOverride None
       </Directory>
       <Directory /var/www/>
               Options Indexes FollowSymLinks MultiViews
               AllowOverride None
               Order allow,deny
               allow from all
               # This directive allows us to have apache2's default start page
               # in /apache2-default/, but still have / go to the right place
               RedirectMatch ^/$ /apache2-default/
       </Directory>
 </VirtualHost>

[1] je ne l'ai pas testé

[2] Adaptez bien évidemment le chemin au fichier certificat généré au point 1.

[3] non testé