Mémo de la fiche B2-12 : une page A4, à imprimer ou à enregistrer en PDF.
B2-12

Services web, HTTPS et reverse proxy Traefik

Comprendre une requête HTTP, publier un site avec Apache ou Nginx, le sécuriser en HTTPS, puis placer devant tous les services web un reverse proxy Traefik configuré en fichiers dynamiques.

Version en ligne
SIO2 · semestre 35 h (cours + TP)Bloc 2 – SISRMémo · Portail SIO
WEBHTTP · HTTPS HTTPGET, POST · en-tête Host200 · 301 · 404 · 502 ServeursApache · Nginxhôtes virtuels · journaux HTTPSTLS · certificat · SANinterne · Let's Encrypt Reverse proxy1 entrée · routage par nomNginx · HAProxy · Caddy TraefikentryPoint → router→ middleware → service Dépannercurl -I · ss -tlnpjournalctl -u traefik

L'essentiel

  1. HTTP : le client envoie une requête (méthode, chemin, en-tête Host), le serveur renvoie une réponse avec un code. Port 80 ; HTTPS = HTTP dans TLS, port 443.
  2. Codes : 2xx succès, 3xx redirection (301), 4xx erreur du client (403, 404), 5xx erreur du serveur (500, 502, 504).
  3. Apache et Nginx hébergent plusieurs sites grâce aux hôtes virtuels, choisis d'après le nom demandé.
  4. Toujours tester la syntaxe (nginx -t) avant de recharger (systemctl reload).
  5. TLS apporte confidentialité, intégrité et authentification du serveur par son certificat ; le nom doit figurer dans le SAN.
  6. Certificat : autosigné pour tester, autorité interne pour les noms .lan, Let's Encrypt (ACME) pour un nom public.
  7. Le reverse proxy est le point d'entrée unique : terminaison TLS, routage par nom, répartition, sécurité.
  8. Traefik : entryPoint → router → middlewares → service.
  9. File provider : un fichier YAML par service dans dynamic/, rechargé à chaud ; jamais de labels Docker au labo.
  10. Dépanner du client vers l'application : DNS, port 443, routeur Traefik, application en direct. Un 502 = application injoignable.

À retenir

Un code 4xx met en cause la requête (mauvaise adresse, droits) ; un code 5xx met en cause le serveur ou ce qu'il y a derrière. Derrière un reverse proxy, un 502 ou un 504 signifie presque toujours que l'application cible est arrêtée ou injoignable.

Piège classique

Les navigateurs ne regardent plus le champ CN : le nom doit figurer dans l'extension subjectAltName (SAN). Un certificat sans SAN, ou avec un autre nom que celui tapé dans la barre d'adresse, provoque l'alerte NET::ERR_CERT_COMMON_NAME_INVALID.

La règle d'or du file provider

Un service publié = un fichier dans dynamic/, qui contient son routeur, son service et ses middlewares. Pour retirer un service, on supprime son fichier : Traefik le retire aussitôt. Ces fichiers se versionnent dans Git, comme le reste de la configuration.

Commandes clés

Pour…Commandes
Activer un site Nginxln -s …/sites-available/site …/sites-enabled/ · nginx -t · systemctl reload nginx
Activer un site Apachea2ensite site · apache2ctl configtest · systemctl reload apache2
Certificat de testopenssl req -x509 -newkey rsa:2048 -nodes … -addext "subjectAltName=DNS:nom"
Publier avec Traefikun fichier /etc/traefik/dynamic/service.yml : routers, services, middlewares, tls
Testercurl -I http://nom (308) · curl -kI https://nom (200)
Ports et programmesss -tlnp
Journauxjournalctl -u traefik -f · /var/log/nginx/ · /var/log/apache2/