TUTORIEL-INSTALLER-ET-CONFIGURER-APACHE-2.4
TUTORIEL-INSTALLER-ET-CONFIGURER-APACHE-2.4
TUTORIEL-INSTALLER-ET-CONFIGURER-APACHE-2.4
APACHE 2.4
Installer et configurer Apache 2
SOMMAIRE
1. QU’EST-CE QUE APACHE ?
2. INSTALLATION D’APACHE 2.4 SUR UNE MACHINE DEBIAN
3. CONFIGURER SSH SUR DEBIAN 11
4. CONFIGURATION DE L’ACCES HTTP AU SITE WEB
5. CONFIGURATION DE L’ACCES HTTPS AU SITE WEB
6. INSTALLER ET CONFIGURER OPEN SSL
7. REDIRECTION DES REQUETES HTTP VERS HTTPS
8. LES COMMANDES UTILES
© tutos-info.fr - 07/2022
Il permet aux propriétaires de sites web de servir du contenu sur le web. Apache est l’un des serveurs web les plus
anciens et les plus fiables avec une première version sortie en 1995.
Lorsqu’un internaute souhaite visiter un site web, il saisit un nom de domaine dans la barre d’adresse de son
navigateur et le serveur web fournit les fichiers demandés en agissant comme un livreur virtuel.
Bien que nous appelions Apache un serveur web, ce n’est pas un serveur physique mais plutôt un logiciel qui s’exécute
sur un serveur. Son travail consiste à établir une connexion entre un serveur et les navigateurs des visiteurs du site
web (Firefox, Google Chrome, Safari, etc.) tout en délivrant des fichiers entre eux (structure client-serveur). Apache
est un logiciel multiplateforme, il fonctionne donc à la fois sur les serveurs Unix et Windows.
Lorsqu’un visiteur souhaite charger une page sur votre site web, par exemple, la page d’accueil ou votre « A propos
de nous », son navigateur envoie une requête à votre serveur et Apache renvoie une réponse avec tous les fichiers
demandés (texte, images, etc.). Le serveur et le client communiquent via le protocole http et Apache est responsable
de la communication fluide et sécurisée entre les deux machines.
Apache est hautement personnalisable, car il a une structure basée sur des modules. Les modules permettent aux
administrateurs de serveur d’activer ou de désactiver des fonctionnalités supplémentaires. Apache possède des
modules pour la sécurité, la mise en cache, la réécriture d’URL, l’authentification par mot de passe et encore plus.
Vous pouvez également configurer vos propres configurations du serveur via un fichier appelé « .htaccess », qui est
un fichier de configuration Apache.
APACHE ET LA CONCURRENCE
1. Etant donné qu’Apache utilise la structure basée sur les fils, les propriétaires de sites web avec un trafic élevé
peuvent rencontrer des problèmes de performances. Nginx est l’un des serveurs web qui traitent le problème
de c10k et probablement le plus réussi.
2. Nginx possède une architecture pilotée par les événements qui ne crée pas de nouveau processus pour chaque
requête. Au lieu de cela, il gère chaque demande entrante dans un seul fil. Ce processus maître gère plusieurs
processus de travail qui effectuent le traitement réel des demandes. Ce modèle de Nginx répartit les requêtes
des utilisateurs entre les processus de travail de manière efficace, conduisant ainsi à une meilleure évolutivité.
3. Si vous avez besoin de gérer un site web avec un trafic élevé, Nginx est un excellent choix, car il peut le faire
en utilisant un minimum de ressources. Ce n’est pas une coïncidence s’il est utilisé par de nombreux sites web
à forte visibilité tels que Netflix, Hulu, Pinterest et Airbnb.
1. Tomcat a été créé spécifiquement pour les applications Java, alors qu’Apache est un serveur HTTP à usage
général. Vous pouvez utiliser Apache avec différents langages de programmation (PHP, Python, Perl, etc.) )
l’aide du module Apache approprié (mod_php, mod_python, mod_perl, etc.).
2. Bien que vous puissiez utiliser un serveur Tomcat pour servir également des pages web statiques, il est moins
efficace qu’Apache. Par exemple, Tomcat pré-charge la machine virtuelle Java et les autres bibliothèques liées
à Java dont vous n’auriez pas besoin sur la plupart des sites web.
3. Tomcat est également moins configurable que les autres serveurs web. Par exemple, pour mettre en marche
Wordpress, le meilleur choix est un serveur HTTP à usage générale tel qu’Apache ou NGINX.
Avantages :
Inconvénients :
Si vous avez des paquets à mettre à jour, Debian vous affiche un message avec le nombre de paquets à mettre à jour :
Faites « Entrée » pour lancer l’installation du paquet et patientez pendant son installation :
Une fois Apache installé, vous pouvez vérifier que le service est actif avec la commande suivante :
Une fois Apache installé (et que le statut est bien actif), vous pouvez afficher la page d’accueil par défaut en ouvrant
un navigateur et en saisissant l’IP de votre machine Debian.
ip a
L’adresse IP de la machine
Debian est affichée ici.
En saisissant cette adresse dans un navigateur on obtient l’affichage de la page par défaut d’Apache :
/var/www/html
• Saisissez la commande « cd /var/www/html » pour vous déplacer dans le dossier par défaut :
• Saisissez la commande « ls » : la page par défaut d’Apache est bien située dans « html » :
Apache utilise différents dossiers pour son bon fonctionnement. Ces dossiers sont situés à cet emplacement :
/etc/apache2
cd /etc/apache1
ls
apache2.conf La configuration d'Apache est effectuée en plaçant des directives dans ce fichier de configuration
principal
sites-available contient les fichiers de configuration des sites disponibles
sites-enabled contient des liens symboliques vers les configurations des sites disponibles (dans sites-available)
et indique les sites actifs (si plusieurs sites sont présents)
ports.conf Indique les ports d’écoute du serveur web Apache (par défaut le port « 80 »).
Ce dossier indique les sites « actifs » sur Apache. Si on ouvre le dossier, on constate qu’un site est actif par défaut :
Ici, on constate que le site web actif par défaut correspond au fichier « 000-default.conf ».
On retrouve le fichier de configuration du site « 000-default.conf » dans le dossier des sites disponibles :
Le fichier « 000-default.conf » correspond à la configuration du site web par défaut d’Apache. Ce site est
automatiquement activé par défaut lors de l’installation d’Apache. On constate qu’il y a également un fichier « default-
ssl.conf ». Ce fichier correspond à la configuration du site web par défaut en https. Attention, Apache n’active pas le
https par défaut. Seul le http est activé dans un premier temps lors de l’installation (voir dossier « sites-enabled »).
Il peut être intéressant, pour des raisons de sécurité, de masquer l’affichage de la version Apache utilisée. Si on saisit
une adresse erronée de type http://ip_apache/test, on obtient ce message avec les indications sur la version Apache,
l’IP et le port d’écoute (en bas) :
Commandes à connaître :
Pour la réalisation de ce TP, nous avons besoin de connaître le FQDN (nom complet) de notre machine Debian. Pour
cela, il suffit de saisir la commande :
Le dossier « sites-available » contient les sites DISPONIBLES sur le serveur web Apache
Le dossier « sites-enabled » contient les sites ACTIFS sur le serveur web Apache
Les fichiers de log (accès au serveur web Apache et erreurs de log) sont ici :
Pour la réalisation de ce TP, nous devons configurer les fichiers « hosts » des machines Debian et Windows car nous
n’avons pas de domaine hébergé chez un fournisseur (nous restons en « local »). Pour cela nous devons modifier les
fichiers « hosts » afin de simuler un hébergement de domaine. Nous procédons ainsi :
Dans Notepad, ajoutez, à la fin, l’IP de votre machine Debian et son FQDN (vous adapterez l’IP et le FQDN) :
Pour mener à bien ce TP, nous avons besoin d’installer OpenSSH-server, Putty et WinSCP :
Sur la machine Windows, téléchargez l’outil « Putty » ici : Download PuTTY: latest release (0.74) (greenend.org.uk)
Lancez Putty en indiquant les paramètres de votre machine Debian :
Relancez le service SSH sur votre machine Debian (« systemctl restart ssh ») et testez l’accès :
L’accès SSH en tant que root est fonctionnel. Attention, nous présentons cette méthode à des fins pédagogiques mais
il est fortement déconseillé de laisser l’accès au root en mode SSH pour des raisons de sécurité !!!
Ici nous constatons que le site « 000-default.conf » est bien actif sur le serveur web Apache puisqu’il fait partie du
dossier « sites-enabled » :
Pour accéder à la page web (en http), nous avions saisi précédemment l’adresse IP du serveur web Apache. Nous allons
modifier le fichier « 000-default.conf » de manière à afficher la page en saisissant le nom de domaine local plutôt que
l’adresse IP (dans notre cas http://debian.tutosio).
Analyse et configuration du fichier « default-ssl.conf » (attention, ici, il est conseillé de copier le fichier d’origine et de
travailler sur une copie pour préserver l’original) :
6 – CONFIGURATION OPENSSL
Dans cette partie, nous allons installer le module OPENSSL sur la machine Debian afin de créer une Autorité de
Certification qui signera les certificats émis.
Principe :
Ici, nous n’aurons pas recours à une autorité reconnue mais à nous-mêmes (nous serons autorité de certification).
Nous allons créer les certificats SSL dans un dossier spécifique pour plus de clarté. Cette phase comporte 2 parties :
Ici, la clé est générée selon un algorithme de chiffrement asymétrique de type RSA 4096 bits et portera le nom de
« ca.key ». Nous générons une clé privée sans « pass phrase » pour simplifier mais il faudrait, dans la pratique, protéger
cette clé par un mot de passe fort (minimum 12 caractères selon l’ANSSI). Pour ajouter une « pass phrase », il faut
ajouter -des3 ou -aes256 par exemple après 4096.
Dans cette partie, nous aurons 3 étapes : nous allons créer une clé privée (.key) pour notre serveur web Apache, un
fichier de demande de signature (.csr) et un certificat auto-signé (.crt) pour notre serveur web Apache.
Saisissez la commande :
Protégez la clé privée en changeant les droits :
Saisissez la commande :
Répondez aux questions pour générer le fichier « .csr » :
Dans cette partie, nous allons ajouter notre Autorité de Certification dans le « magasin » de certificats de notre
navigateur web (ici, nous utiliserons Firefox).
Pour réaliser ce travail, nous allons installer et utiliser WinSCP pour transférer le certificat vers notre machine Windows
(il existe d’autres méthodes mais, pour des raisons pédagogiques, nous en profitons pour présenter WinSCP).
WinSCP affiche une double fenêtre correspondant aux machines Windows et Debian :
Allez dans le dossier /etc/apache2/ssl et faites glisser le fichier certificat de votre Autorité de Certificaton « ca.crt »
dans un dossier de votre machine Windows (afin de le récupérer) :
Cliquez le bouton « Importer » puis recherchez votre certificat « ca.crt » importé précédemment
Cliquez l’option « Confirmer cette AC pour identifier les sites web »
Cliquez le bouton « Ok » pour confirmer l’importation
En cliquant à nouveau le bouton « Afficher les certificats » on constate que le certificat de notre Autorité est bien
présent dans le « magasin des autorités racines de confiance » :
Votre site web HTTPS est pleinement reconnu par votre Autorité :
Nous allons plutôt configurer une redirection permanente des requêtes http qui arrivent sur le port 80 vers le site
sécurité https (port 443), en modifiant simplement le ficher « 000-default.conf » :