100%
GRIMOIRE
GrimoireCorpus DindonVolumes de SynthèseLe Socle du Fer
FRENAR
RATIO
LE SOCLE DU FER · SUPPORT DE COURS · SEMAINE 24
◆◆◆
SERVEUR WEB
HTTP/HTTPS ET CERTIFICATS
Semaine 24 sur 26 · Bloc 9 — Web & BDD
8h théorie · 27h pratique
◆ OBJECTIFS PÉDAGOGIQUES DE LA SEMAINE

1. Comprendre le protocole HTTP/HTTPS et l'architecture client-serveur web
2. Installer et configurer un serveur web (Apache ou Nginx)
3. Héberger un site simple et le résoudre via le DNS de S21
4. Mettre en place HTTPS avec un certificat auto-signé
5. Configurer des hôtes virtuels pour héberger plusieurs sites sur un même serveur

◆◆◆
⚠ AVERTISSEMENT — PÉRENNITÉ DES VERSIONS CITÉES

Apache et Nginx sont cités comme serveurs web de référence. D'autres solutions existent. Les numéros de versions et les emplacements de fichiers de configuration varient entre distributions Linux et entre versions. Le formateur adapte à l'environnement disponible.

Amine RAITI · Architecte Infrastructure & SRE
Document public · CC BY-NC-SA 4.0 · AI Powered by Amine
Opération Dindon
RATIO
PLAN DE COURS · 8H
FIL CONDUCTEUR THÉORIQUE
24.1 · Protocole HTTP/HTTPS et architecture web3h
— HTTP : protocole de couche 7 (application OSI, lien S17), échange requête/réponse, méthodes GET/POST, codes de statut
— HTTPS : HTTP avec chiffrement TLS — le contenu est chiffré, l'identité du serveur est vérifiée par un certificat
— Architecture client-serveur web : navigateur (client) ↔ serveur web (Apache/Nginx) ↔ application ↔ base de données (lien anticipé avec S25)
24.2 · Certificats SSL/TLS2h
— Rôle du certificat : prouver l'identité du serveur et établir un canal chiffré
— Certificat auto-signé (formation) vs certificat d'autorité reconnue (production)
— Chaîne de confiance : CA racine → CA intermédiaire → certificat serveur
24.3 · Hôtes virtuels (Virtual Hosts)2h
— Héberger plusieurs sites sur un même serveur avec des noms de domaine différents
— Distinction par nom de domaine (Name-based Virtual Hosting) — le serveur lit le header HTTP Host pour décider quel site servir
— Lien avec DNS : chaque Virtual Host nécessite un enregistrement A dans la zone DNS de S21
24.4 · Sécurisation basique du serveur web1h
— Désactiver l'affichage de la version du serveur dans les en-têtes HTTP
— Restreindre l'accès à certains répertoires
— Journaux d'accès et d'erreur : où les trouver et comment les lire
RATIO
TP1 · INSTALLATION ET CONFIGURATION DU SERVEUR WEB · 13H

Matériel : VM Linux (S8), DNS opérationnel depuis S21.

(2h) Installation du serveur web, démarrage du service, vérification via navigateur en local (http://localhost).
(2h) Création d'un site simple (page HTML fournie), configuration du Virtual Host par défaut pour servir ce site, ajout de l'enregistrement A dans le DNS de S21 pour résoudre le nom du site depuis un autre poste.
(3h) Mise en place de HTTPS : génération d'un certificat auto-signé, configuration du Virtual Host HTTPS, test de la connexion chiffrée (acceptation du certificat auto-signé dans le navigateur).
(3h) Création d'un second Virtual Host pour un second site fictif sur le même serveur, ajout du second enregistrement DNS, vérification que les deux sites sont accessibles indépendamment.
(2h) Configuration de la redirection automatique HTTP → HTTPS, test de la redirection depuis un navigateur.
(1h) Exploration des journaux d'accès et d'erreur, identification d'une requête réussie et d'une erreur 404.
CORRIGÉ TP1

Vérification de la résolution DNS : depuis un poste client sur le même réseau, résoudre le nom du site via le DNS de S21 — la réponse doit retourner l'adresse IP du serveur web. Sans cette étape, le navigateur ne peut pas trouver le serveur par son nom.

Erreur fréquente pour les Virtual Hosts : oublier de créer un enregistrement DNS distinct pour chaque Virtual Host — les deux noms de domaine doivent résoudre vers la même IP du serveur, mais chacun doit avoir son propre enregistrement A dans la zone DNS.

RATIO
TP2 · SÉCURISATION ET DIAGNOSTIC WEB · 14H

Matériel : serveur web configuré au TP1, Wireshark.

(3h) Capture comparative HTTP vs HTTPS avec Wireshark : observer que le contenu HTTP est lisible en clair, que le contenu HTTPS est chiffré — démonstration concrète de l'importance du HTTPS (lien avec S15 — sécurité).
(3h) Sécurisation du serveur web : désactivation des modules non utilisés, restriction d'accès à un répertoire par adresse IP, configuration des en-têtes de sécurité HTTP.
(4h) Scénario de déploiement d'une application web simple (application PHP fournie) sur le serveur, connexion à la base de données qui sera déployée en S25 (préparation de la configuration de connexion).
(2h) Diagnostic de pannes web simulées : 403 Forbidden (permissions), 502 Bad Gateway (service applicatif non joignable), certificat expiré — identifier la cause dans les journaux et corriger.
(2h) Documentation du serveur web déployé : Virtual Hosts, HTTPS, modules actifs, restrictions.
CORRIGÉ TP2

Codes d'erreur et leur cause : 403 Forbidden = les permissions sur le répertoire ou le fichier empêchent le serveur web de le lire (vérifier les permissions UNIX, lien S8) ; 502 Bad Gateway = le service applicatif backend (PHP-FPM ou équivalent) n'est pas actif ou n'écoute pas sur le bon socket ; certificat expiré = recréer le certificat auto-signé ou en prolonger la durée de validité.

◆ FICHE DE SYNTHÈSE — AUTO-ÉVALUATION SEMAINE 24
1. Je sais expliquer le fonctionnement HTTP/HTTPS et les méthodes GET/POST.
2. Je sais installer et configurer un serveur web (Apache ou Nginx).
3. Je sais configurer HTTPS avec un certificat auto-signé.
4. Je sais créer plusieurs Virtual Hosts sur le même serveur.
5. Je sais configurer la redirection HTTP → HTTPS.
6. Je sais lire et interpréter les journaux d'accès et d'erreur du serveur web.
7. Je sais diagnostiquer les erreurs HTTP courantes (403, 404, 502).
8. Je sais expliquer l'intérêt du HTTPS par rapport au HTTP en clair.