Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révisionLes deux révisions suivantes | ||
technique:docker:general:traefik [2020/10/07 20:42] – qduchemi | technique:docker:general:traefik [2021/10/17 02:46] – qduchemi | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{indexmenu_n> | + | {{indexmenu_n> |
# Traefik, un reverse-proxy pour Docker | # Traefik, un reverse-proxy pour Docker | ||
Ligne 15: | Ligne 15: | ||
Chaque service tourne dans un conteneur Docker. En prenant un exemple, la situation est la suivante : | Chaque service tourne dans un conteneur Docker. En prenant un exemple, la situation est la suivante : | ||
- | {{ : | ||
Le navigateur contacte naturellement le port `443` car l'URL est en HTTPS, dans cet exemple. | Le navigateur contacte naturellement le port `443` car l'URL est en HTTPS, dans cet exemple. | ||
Ligne 38: | Ligne 37: | ||
< | < | ||
- | C'est une solution simple, néanmoins elle nécessite d' | + | C'est une solution simple, néanmoins elle nécessite d' |
## Utiliser un reverse proxy | ## Utiliser un reverse proxy | ||
Ligne 55: | Ligne 54: | ||
C'est pourquoi nous utilisons Traefik, un outil clé en main pour Docker. Traefik fonctionne comme un reverse proxy traditionnel, | C'est pourquoi nous utilisons Traefik, un outil clé en main pour Docker. Traefik fonctionne comme un reverse proxy traditionnel, | ||
- | {{ : | + | {{ : |
* L' | * L' | ||
Ligne 63: | Ligne 62: | ||
En somme, pour ajouter un nouveau service accessible depuis internet via HTTPS, il suffit d' | En somme, pour ajouter un nouveau service accessible depuis internet via HTTPS, il suffit d' | ||
+ | |||
+ | ## Configuration | ||
+ | |||
+ | < | ||
+ | |||
+ | On ne présente pas ici la manière de configurer Traefik, qui évolue au fil du temps, mais les choix qui ont été faits et les points de vigilance. | ||
+ | |||
+ | ### Sécurisation | ||
+ | |||
+ | Traefik permet de sécuriser les services web en établissant une connexion TLS (HTTPS) entre les clients et lui. Il communique ensuite avec les conteneurs sur le réseau privé Docker, en clair (HTTP). Il est donc fondamental qu'il soit bien sécurisé. En particulier, | ||
+ | |||
+ | * Forcer à rediriger les requêtes HTTP vers HTTPS. | ||
+ | * Utilisation de Let's Encrypt pour créer et renouveller automatiquement les certificats des services. | ||
+ | * Restriction de la version de TLS minimale (actuellement, | ||
+ | * Restriction des algorithmes de chiffrement utilisés (*ciphers*), | ||
+ | * Injection de *headers* de sécurité dans toutes les requêtes et réponses, permettant de limiter les risques d' | ||
+ | |||
+ | ### Performance | ||
+ | |||
+ | Traefik est aussi configuré pour compresser l' | ||
+ | |||
+ | ### Docker | ||
+ | |||
+ | Traefik se trouve dans le réseau Docker appelé `proxy`. Il inspecte tous les conteneurs de ce réseau et décide s'il doit router vers ces conteneurs, en fonction de leurs labels. | ||
+ | |||
+ | < |