Utiliser mod_ssl avec Apache

Dernière mise à jour : 19/05/2004

    Cet article va tenter de vous dĂ©montrer qu'il ne faut pas avoir peur de mod_ssl sous Apache. Mod_ssl est un projet visant Ă  intĂ©grer un module sĂ©curisĂ© (https) avec Apache. J'ai pour cela utilisĂ© une Debian Woody mais il ne devrait pas ĂŞtre dur de l'adapter Ă  votre distribution. Vous devez bien sĂ»r avoir un serveur Apache en Ă©tat de marche, je ne rentrerais donc pas dans la configuration de celui-ci (faĂ®tes http://localhost) pour vous assurer qu'il tourne. Enfin, il est important de savoir que mod_ssl n'est pas liĂ© Ă  OpenSSL, ce sont deux projets diffĂ©rents. Tout est d'ailleurs expliquĂ© sur le site officiel que je vous invite Ă  visiter

    Il nous faut tout d'abord installer mod_ssl, cette procĂ©dure ultra-complexe se symbolise par un : apt-get install libapache-mod-ssl qui devrait vous retourner une partie de ceci :
Bien que mod_ssl installe lui même ses certificats, il est préférable de créer le sien. Ainsi, allez dans /etc/apache et commencez donc la manipulation des certificats. On commence donc par générer la clé privée du serveur (les lignes en italiques sont les réponses de la machine). Attention, dans cette étape, il est primordial d'avoir un mot de passe sécurisé et que vous n'oublierez pas car il servira pour générer les certificats par la suite.


    Vous devez ensuite retirer le mot de passe de la clĂ©, pour se faire, utilisez :

    Vous devez ensuite gĂ©nĂ©rer le Certificat qui sera affichĂ© lors de la connexion sĂ©curisĂ©e, pour se faire, il suffit de taper la commande qui suit. Vous pouvez entrer les valeurs du certificat par dĂ©faut en Ă©ditant le fichier /usr/lib/ssl/openssl.cnf, comme ça ce sera fait une fois pour toutes.

    Vous n'avez sans doute pas besoin de faire signer le certificat par une autoritĂ© compĂ©tente si c'est pour un usage personnel, vous pouvez alors le signer vous mĂŞme comme suit :

    Bravo, la partie crĂ©ation de certificats est terminĂ©e, il nous faut Ă  prĂ©sent copier server.pem et server.crt dans un rĂ©pertoire pour apache. faĂ®tes donc : mkdir /etc/apache/certs/ && cp server.{pem,crt} /etc/apache/certs. Libre Ă  vous de mettre ça ailleurs, c'est ma mĂ©thode pour le faire. Comme vous l'aurez remarquĂ©, nous n'avons pas encore touchĂ© Ă  la configuration Apache. Editez donc /etc/apache/httpd.conf et assurez vous d'ajouter les directives suivantes aux bons endroits :

    Voila pour la configuration, la partie VirtualHost est secondaire mais j'en avais besoin sur mon serveur. Il ne reste alors qu'Ă  redĂ©marrer votre petit serveur apache par /etc/init.d/apache restart. Juste pour le fun, connectez vous alors sur https://localhost. En cas d'Ă©chec, pensez toujours Ă  vĂ©rifier /var/log/apache/access.log et error.log (apache devient httpd sous d'autres distributions). Voici ce que vous devriez obtenir si tout va bien :

    Près d'un an après l'Ă©criture de cet article, Eric (un lecteur) a eu la bonne idĂ©e de m'envoyer une petite astuce que je vais vous donner ici afin de ne pas avoir Ă  rentrer de mot de passe lors du dĂ©marrage du serveur apache. Il vous suffit pour cela de retirer l'encryption du certificat comme ceci :

    Votre configuration mod_ssl touche Ă  sa fin. Un code 200 dans les accès signifie que la page a Ă©tĂ© correctement dĂ©livrĂ©e au client. Cet article est bien sĂ»r adaptable Ă  d'autres distributions mais devrait vous fournir une bonne base pour mettre en place rapidement votre serveur sĂ©curisĂ© en place.