Apache avec mod_ssl

17 Sep. 2006
Auteur : Hyacinthe MENIET
Responsable : TrustRobot
Score ( voter ) :
Connexes : Même auteur | Même responsable | Historique
Apache 1 (actuellement en version 1.3.27) est un serveur HTTP maintenu par l'Apache Group. Apache est le fruit de l'effort de webmasters qui développèrent chacun des extensions au serveur le plus populaire de l'époque (le serveur HTTP du NCSA), puis décidèrent de former l'Apache Group afin de mettre en commun leurs efforts et de produire le serveur HTTP le plus robuste et le plus stable jamais connu. Apache est conforme au protocole HTTP (utilisé pour la communication entre les navigateurs et le serveur) et reconnaît également les requètes HTTP/1.1, dernières extensions à HTTP. Il intègre le concept de modules, ce qui rend facile le développement d'extensions par la communauté du logiciel libre. Cette facilité donne à Apache un grand nombre de fonctionnalités uniques (voir l'URL http://modules.apache.org pour une liste des modules développés). Associé à PHP, il devient un puissant serveur de pages web dynamiques. Dans ce document nous allons détailler l'installation d'apache avec mod_ssl, pour apache 1. Il existe un Apache 2, qui apporte de nombreuses améliorations par rapport à cette version.

1. Installation binaire d'apache :

J'explique ici l'installation d'apache depuis les paquets de votre distribution. Si votre distribution n'est pas étudiée, recherchez dans vos cdroms des paquets aux noms similaires, ou utilisez l'installation à partir des sources. Dans tous les cas, la configuration qui suivra, fera la part belle aux sources, par soucis de généricité. Reportez-vous à la doc de votre distribution pour les détails.

2. Apache + ssl à partir des sources :

2.1 Pré-requis :

Vous trouverez la version la plus à jour d'Apache 1, ICI ou LA . Pour fixer les idées, je desarchiverai toutes mes sources dans un même répertoire, je vous conseille de faire pareil. Dans mon cas il s'agit de /tmp/apache, créez-le et décompréssez apache :
# mkdir /tmp/apache # cd /tmp/apache/ # tar -xzvf /où_est/apache_1.3.27.tar.gz

2.2 Installation de mm :

La librairie MM est une librairie qui simplifie l'utilisation de la mémoire partagée entre plusieurs processus "forkés" sous Unix. Vous pouvez télécharger la version la plus à jour ICI . Son installation est assez simple :
# cd /tmp/apache # tar -xzvf /où_est/mm-1.3.0.tar.gz # cd mm-1.3.0/ # ./configure --prefix=/usr # make && make install

2.3 Installation de mod_ssl :

Mod_ssl est le module ssl pour apcahe. J'installe mod_ssl statiquement . Commencez par télécharger la dernière version de mod_ssl, correspondante à votre apache ICI . Pour l'installation : # cd /tmp/apache # tar -xzvf /où_est/mod_ssl-2.8.14-1.3.27.tar.gz # cd mod_ssl-2.8.14-1.3.27/ # ./configure --with-apache=/tmp/apache/apache_1.3.27 --enable-shared=ssl --with-mm=/tmp/apache/mm-1.3.0

2.4 Installation d'apache :

J'ai choisi de mettre les gros fichiers d'apache dans la partition /home/, parce que c'est la plus grosse chez moi. Vous êtes libres, d'adapter à votre convenance. La compilation d'apache se résume à : # cd /tmp/apache/apache_1.3.27/ # EAPI_MM="/tmp/apache/mm-1.3.0" SSL_BASE="/usr" ./configure --prefix=/usr --exec-prefix=/usr --bindir=/usr/sbin --sbindir=/usr/sbin --libexecdir=/usr/sbin --datadir=/usr/share --includedir=/usr/include --mandir=/usr/man --sysconfdir=/etc/httpd/conf --localstatedir=/home/log/httpd --htdocsdir=/home/httpd/html --cgidir=/home/httpd/cgi-bin --iconsdir=/home/httpd/icons --enable-module=all --enable-module=so --enable-shared=max # make Maintenant vous devez générer des certificats auto-signés. Dans la plus part des cas vous devrez taper :
# make certificate TYPE=dummy
Si vous souhaitez utiliser, un ancien certificat se sera : # make certificate TYPE=existing CRT=/où_est_votre/server.crt KEY=/où_est_votre/server.key Finissez par :
make install
Vérifirez que vous avez bien les fichiers :
/etc/httpd/conf/ssl.crt/server.crt /etc/httpd/conf/ssl.key/server.key
Une petite description de l'arborescence d'apache : Vos pages web seront dans : /home/httpd/html/, les exécutables d'apache dans /usr/bin/, les mods sont dans /usr/sbin/, les logs dans /home/log/httpd/, les fichiers de conf dans /etc/httpd/conf/, les scripts cgi dans /home/httpd/cgi/ et les icônes dans /home/httpd/icons/ Apache ne doit pas être lancé par root, il est préférable d'utiliser pour cela un utilisateur sans droit. Pour ce faire, nous utiliserons : nobody, présent sur la plus part des distributions. Vérifiez sa présence par :
# cat /etc/passwd | grep nobody
Si cette commande restait sans réponse c'est que vous n'avez pas d'utilisateur nobody. Vous pouvez le créer par :
# groupadd nobody # useradd -g nobody -d /home/httpd nobody
Terminez en attribuant le répertoire /home/httpd et son contenu à nobody :
chown -R nobody.nobody /home/httpd/

2.5 Configuration d'apache :

2.6 Lancement d'apache :

Pour lancer apache sans support ssl tapez maintenant :
# /usr/sbin/apachectl start
Pour lancer apache avec support ssl tapez :
# /usr/sbin/apachectl startssl
/usr/bin/apachectl accepte également les arguments, "stop" pour l'arrêt et "restart" pour le redémarrer. Vous pouvez également utiliser les arguments "status" ou "fullstatus" si et seulement si vous avez le navigateur lynx installé. Pour tester votre installation d'Apache, tapez dans un terminal :
# cd /home/httpd/html/ # mv manual/index.html.fr index.html
Puis dans un navigateur tapez http://localhost/ Pour qu'apache soit lancé à chaque démarrage, rajoutez les lignes suivantes dans votre /etc/rc.d/rc.local :
if [ -x /usr/sbin/apachectl ]; then
echo "Demarrage d'Apache ..."
/usr/sbin/apachectl start
fi
Adaptez, si vous souhaitez activer le support SSL. Vous trouverez de la documentation sur apache ICI