Apache2 Sous Linux - Lasfar Salim
Apache2 Sous Linux - Lasfar Salim
Apache2 Sous Linux - Lasfar Salim
Linux
LASFAR Salim
Apache est le plus populaire des serveurs HTTP. Il est
produit par la Apache Software Foundation . C'est un
logiciel libre fourni sous la licence spcifique Apache.
LP-R2SI:
Administration des
rseaux et scurit
sous Linux.
Installation :
Apache est compos de plusieurs paquets :
La bibliothque, le serveur et ses
outils Nom
libapr1
apache2
apache2.2-common
apache2-utils
Rle
Apache's Portable Runtime Library,
bibliothque de fonctions standards
portables.
Ce paquet contient le serveur.
Ce paquet contient les modules
standards apache2, qui incluent le
support SSL.
Outils pour serveurs web.
Utilisation :
#sudo service apache2 start/stop/restart
Il existe des interfaces graphiques pour utiliser Apache. De la plus simple la
plus complte : localhost-indicator, rapache et webmin.
Erreur au dmarrage :
Au dmarrage d'Apache, il est possible que celui-ci ne soit pas capable de
dterminer un nom de domaine. Ce message sera affich dans le terminal :
Could not reliably determine the server's fully qualified domain name, using
127.0.1.1 for ServerName
Pour corriger l'erreur, on doit diter le fichier /etc/apache2/httpd.conf
Par dfaut ce fichier est vide, il faut donc ajouter la ligne suivante:
>ServerName localhost
Configuration :
Listen X.X.X.X:80
# toutes les interfaces connectes sur port ssl
Listen 443
sites-available :
Ce fichier contient les diffrents vhosts que vous utiliserez. Ils vous permettent
de dfinir plusieurs sites sur une mme machine, le plus souvent des sousdomaines (www.domain.tld, machin.domain.tld), mais aussi d'autres
domaines (domain.tld, autredomain.tld).
ditez le fichier /etc/apache2/sites-available/default (le seul vhost existant
pour le moment).
Il faut maintenant activer le vhost. Pour cela il faut crer un lien symbolique du
fichier de sites-available/ vers sites-enabled/. En utilisant:
Rsultat ifconfig :
Aprs on cre une vhost www.fst.ma avec les mme tapes avec les quelles on
cre www.fssm.ma :
Pour notre exemple nous allons imaginer que notre dossier d'hbergement par
dfaut est :
/var/www/fst
Commenons par nous placer dans le dossier que nous voulons protger :
cd /var/www/fst
La partie <Limit> indique qu'il nous faut un utilisateur valid pour accder au
contenu du dossier
Crons maintenant le fichier .htpasswd :
#htpasswd -b -c .htpasswd mon_login mon_mot_de_passe
Exemple :
Fichier .htpasswd :
Il ne vous reste plus qu' activer l'option AllowOverride pour votre dossier
/var/www/xenetis.org/admin/.
Pour cela ditez votre fichier de virtualHost et ajoutez-y les lignes suivantes
(avant la balise de fermeture) .
Il ne vous reste plus qu' redmarrer apache pour mettre jour votre
configuration :
Les Certificats :
Un certificat permet de fournir diverses informations concernant l'identit de
son dtenteur (la personne qui publie les donnes). Ce certificat s'accompagne
d'une cl publique qui est indispensable pour que la communication entre les
machines soit chiffre.
De mme, afin de garantir l'authenticit du certificat, ce dernier est sign
numriquement par le biais d'une cl prive provenant soit d'un organisme
officiel (Socit spcialise dans la certification) soit par le dtenteur du
Certificat lui mme. Dans ce dernier cas, on parlera de certificat auto-sign.
Dans la plupart des cas, l'obtention d'un Certificat certifi par une autorit
officielle ayant un prix assez lev, les webmasters auront tendance a vouloir
signer eux-mme leur certificat. Ce faisant, il est noter que dans ce cas, le
certificat ne sera pas reconnu par les navigateurs internet comme tant certifi.
CA Cert permet d'obtenir des certificats gratuits. Il vous faudra nanmoins
installer le certificat racine dans votre navigateur.
Dans ce tutoriel, la procdure prsente explique la marche suivre pour mettre
en place un Site Web scuris via protocole SSL en utilisant un Certificat
auto-sign.
Pour ce tutoriel, nous supposons que nous avons dj mis en place un hte
virtuel bas sur le nom nomm www.fssm.ma, ce dernier tant accessible sur le
port 80 l'adresse http://www.fssm.ma
Cration du certificat :
#sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -out
/etc/apache2/server.crt -keyout /etc/apache2/server.key
Explications :
-x509 -nodes donne le type de certificat voulu
-days 365 indique la dure de validit (en jours) de votre certificat
-newkey rsa:1024 demande une cl RSA de 1024 bits - d'aprs la doc apache, il
est dconseill de crer une cl plus grosse pour des histoires de compatibilit
-out /etc/apache2/server.crt est le chemin de votre certificat
-keyout /etc/apache2/server.key est le chemin de la cl prive
Indiquez ici le nom de votre ville. (exemple : CAEN) et validez par la touche
Entre
Organization Name (eg, company; recommended) []:
Indiquez le nom de votre organisation, de votre socit. (exemple : francehosting) et validez par la touche Entre . Si vous n'avez pas de socit, vous
pouvez mettre un nom fictif, le nom de notre site Web par exemple.
Organizational Unit Name (eg, section) []:
Indiquez ici le nom de la section de votre organisation, de votre socit. Si vous
n'en avez pas, mettez la mme chose que pour la question prcdente.
Common Name (eg, YOUR name) []:
Ici, il convient de faire particulirement attention ce que vous allez entrer.
Vous devez indiquer le nom de domaine que vous dsirez scuriser. En ce qui
nous concerne, il s'agit du domaine : nuxwin.com. Nous indiquons donc
nuxwin.com et nous validons par la touche Entre .
Email Address []:
Ici, il s'agit d'indiquer l'adresse E-mail de l'administrateur. En ce qui nous
concerne, il s'agit de : [email protected]. Nous terminons bien entendu en
validant par la touche Entre .
Exemple :
Configuration Apache2 :
Ajout de la directive Listen 443
Par dfaut, Apache2 est configur pour couter sur le port 80. Il s'agit l de la
configuration usuelle d'un Serveur Web. Cependant, le protocole SSL a besoin
d'un port spcifique pour pouvoir fonctionner. Il s'agit du port 443.
Nous allons donc rajouter une directive de configuration nomme Listen qui
permettra d'indiquer Apache2 qu'il doit aussi couter sur le port 443.
Pour ce faire, ditez le fichier /etc/apache2/ports.conf et rajoutez la ligne
suivante :
Pour scuriser cet Hte Virtuel, nous allons donc devoir modifier ce fichier en y
ajoutant un hte virtuel accessible sur le port 443, ce dernier contenant des
directives particulires qui sont les suivantes :
1. Directive SSLEngine : Cette directive permet d'activer le moteur SSL au sein
d'un hte virtuel, Elle peut prendre deux arguments > on/off
2. Directive SSLCertificateFile : Cette directive dfinit le certificat
authentifiant le Serveur auprs des clients. L'argument est le chemin d'accs au
certificat. En ce qui nous concerne, le certificat se trouve dans le rpertoire
/etc/apache2/
3. Directive SSLCertificateKeyFile : Cette directive dfinit la cl prive du
Serveur utilise pour signer l'change de cl entre le client et le serveur. Elle
prend en argument le chemin d'accs la cl (fichier). Dans notre cas, la cl se
trouve dans le rpertoire /etc/apache2/.
Par ailleurs, comme nous l'avons dj fait pour notre hte virtuel accessible sur
le port 80, nous allons devoir rajouter une directive NameVirtualHost qui
permettra que l'adresse nomme par le nom de notre hte virtuel accessible sur
le port 443 soit rsolue correctement. Nous rajouterons donc cette directive
(NameVirtualHost 192.168.1.2:443) au dbut de notre fichier de configuration.
Enfin, afin que les clients puissent continuer d'accder au site Web en tapant
une url de type http et non https, nous allons modifier l'hte virtuel accessible
sur le port 80 en remplaant la directive DocumentRoot par une directive de
redirection.
Et on le modifier :