Vous êtes sur la page 1sur 2

Nicolas Dewaele

nico@nicodewaele.info
Sécuriser Apache avec TLS (SSL) www.nicodewaele.info

Sécuriser Apache avec TLS (SSL)

I- Création d'un certificat auto-signé sous Debian :


Pour utiliser le SSL et créer un certificat sous Debian, vous devez installer les paquets suivants
avec aptitude :
openssl, ssl-cert et libssl0.9.8

Nous allons ensuite nous placer dans le répertoire d'Apache 2 (/etc/apache2) pour générer le
certificat au bon endroit :
cd /etc/apache2

Création de la clé privée RSA :


Cette commande va vous permettre de générer une clé RSA :
openssl genrsa -out server.key 1024

Génération d'un certificat auto-signé :


Attention : Si le certificat est auto-signé, les versions récentes
de Firefox et IE préviennent le client que le certificat n'a pas été
créé par un organisme de certification.

La certification d'un site SSL par un organisme, est très coûteuse,


c'est pourquoi cette opération ne s'adresse pas aux particuliers
mais uniquement aux sites de vente en ligne.

A partir de la clé de tout à l'heure, vous allez pouvoir créer un certificat générique pour votre
organisme :

openssl req -new -key server.key -out server.csr

Vous devrez répondre ensuite aux questions qui permettront d'identifier votre organisme :
– Code de pays
– État
– Ville
– Entreprise
– Section de l'entreprise
– Nom du responsable du site sécurisé
– e-mail du responsable

Enfin, vous allez pouvoir créer le certificat utilisable par les visiteurs au format x509 pour une
certaine durée (dans cet exemple 1 an) :
openssl x509 -req -days 365 -in server.csr -signkey server.key -out
server.crt

Dernières modifications le 11/01/09


- Page 1 -
Nicolas Dewaele
nico@nicodewaele.info
Sécuriser Apache avec TLS (SSL) www.nicodewaele.info

II- Activation d'un site sécurisé sous Apache :


Activer le SSL dans Apache 2 :
Pour avoir la liste complête des modules de Apache 2, on peut faire :
ls /etc/apache2/mods-available

Pour activer un module de Apache 2 on utilise la commande a2enmod. Le SSL est peut être déjà
activé mais pour le vérifier on peut taper :
a2enmod ssl

Modification des ports d'écoute :


Vérifiez dans le fichier /etc/apache2/ports.conf si il existe le port 443 pour le module SSL. Si ce
n'est pas le cas, vous pouvez ajouter une ligne :
Listen 443

Nouveau site virtuel :


Créez un nouveau site virtuel (fichier dans /etc/apache2/sites-available/ ).
Dans ce fichier vous pouvez écrire les lignes suivantes :
NameVirtualHost www.votreserveur.com:443

<VirtualHost www.votreserveur.com:443>
DocumentRoot /var/www/repduserveur
ServerName www.votreserveur.com
<Directory /var/www/repduserveur>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from all
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/server.crt
SSLCertificateKeyFile /etc/apache2/server.key
</VirtualHost>

Redémarrage et test :
Il ne reste qu'à recharger le serveur Apache :
/etc/init.d/apache2 reload

Pour tester ce serveur sécurisé, vous pouvez aller sur :


https://www.votreserveur.com/

Vous devriez avoir un avertissement car ce certificat est auto-signé. Vérifiez le contenu du
certificat. Vérifiez par une analyse de trame que les informations ne sont pas lisibles.

Dernières modifications le 11/01/09


- Page 2 -