
Installation de l’accès SSL du serveur Apache 2 sur Debian Squeeze
Cette article est la suite de celui correspondant à l’installation de Apache 2 sur Debian. Après avoir installé une serveur Web, il peut être utile de vouloir sécuriser le flux de certaine page web en utilisant l’accès SSL. Cela permettra de crypter la liaison entre le browser et le serveur. Pour effectuer cela, rien de bien compliqué.
Activation de l’accès SSL sur le serveur apache
Pour commencer, nous allons activer le flux HTTPS sur notre serveur. Ajouter les lignes suivantes dans le fichier /etc/apache2/ports.conf.
1 2 3 4 5 6 7 8 9 |
<IfModule mod_ssl.c> Listen 443 NameVirtualHost *:443 </IfModule> <IfModule mod_gnutls.c> Listen 443 NameVirtualHost *:443 </IfModule> |
Vérifier ensuite que dans le fichier /etc/apache2/sites-available/default-ssl, qu’il n’y a pas une des lignes suivantes :
1 2 |
Listen 443 NameVirtualHost *:443 |
Une fois, le port d’écoute et le virtual Host configuré, il est nécessaire d’activer le module Apache SSL. Pour cela, une commande :
1 |
a2enmod ssl |
Puis, recharger la configuration du serveur:
1 |
service apache2 force-reload |
La première étape est terminée. Notre serveur est prêt à recevoir des requêtes en HTTPS. Si vous voulez exposer le site à l’extérieur de votre réseau, comme dans l’article précédent, il faudra penser à ouvrir et router le port 443 cette fois-ci de votre box sur ce serveur web.
Création du certificat
Pour crypter la liaison, il est nécessaire d’avoir un certificat. Ce certificat apparaitra dans les navigateurs comme ne provenant pas d’un site de confiance, mais pour nos test cela suffira. Pour avoir un certificat de confiance, il faudra en acheter un émis par un organisme officielle. Il existe aussi une solution gratuite avec l’organisme StartSSL, ce sujet ne sera pas abordé ici. Passons à la création de notre certificat internet.
Si cela n’a pas encore était fait, commencer à installer la package :
1 |
apt-get install openssl ssl-cert |
Ensuite, nous allons générer notre clé privée.
1 |
openssl genrsa -out /etc/ssl/private/mondomaine.key 1024 |
Rem : ce certificat n’a pas de mot de passe, sinon il faudra le saisir à chaque redémarrage du serveur Apache, pas pratique, surtout que pendant ce temps, le site est inactif.
Ensuite, nous allons créer la demande de certificat:
1 |
openssl req -new -key /etc/ssl/private/mondomaine.key -out /etc/ssl/mondomaine.csr |
Une série de question va être posée:
1 2 3 4 5 6 7 |
Country Name (2 letter code) [AU]: FR State or Province Name (full name) [Some-State]: France Locality Name (eg, city) []: Votre ville, mais ce n'est pas obligatoire Organization Name (eg, company) [Internet Widgits Pty Ltd]:Votre société Organizational Unit Name (eg, section) []: vide Common Name (eg, YOUR name) []:www.mondomaine.com (très important de respecter le nom de domaine) Email Address []:contact@mondomaine.com |
Pour finir, nous allons créer le certificat proprement dit :
1 |
openssl x509 -req -days 365 -in /etc/ssl/mondomaine.csr -signkey /etc/ssl/private/mondomaine.key -out /etc/ssl/certs/mondomaine.crt |
Configuration et Installation de site WEB SSL par défaut
Modifier le fichier /etc/apache2/site-available/default-ssl. Mettre à jour les informations concernant le certificat :
1 2 |
SSLCertificateFile /etc/ssl/certs/mondomaine.crt SSLCertificateKeyFile /etc/ssl/private/mondomaine.key |
Activer le site sur le serveur Apache:
1 |
a2ensite default-ssl |
Puis, recharger la configuration du serveur:
1 |
service apache2 force-reload |
Voila, vos sites disponible sur /var/www sont accessibles en https.