Table des matières

, , ,

Traefik: reverse proxy https local

On cherche ici à configurer Traefik pour fonctionner en HTTPS sur une machine de développement ou un domaine local. On utilise une autorité de certification interne émettant des certificats x509.

Créer les enregistrements DNS désignant les nouveaux services, ici on utilise le fichier /etc/hosts de la machine de développement:

127.0.1.1       red.labinfo.mairie.local
127.0.1.1       blue.labinfo.mairie.local
127.0.1.1       green.labinfo.mairie.local

On génère un certificat wilcard qui pourra être utilisé par les tous services et le reverse proxy. Les commandes sont invoquées depuis le répertoire de l'Autorité de Certification intermédiaire. Pour le détail des commandes confère wiki devenir CA avec Openssl

# Génération de la clé privée
openssl genrsa -out private/labinfo.mairie.local.key 2048
chmod 400 private/labinfo.mairie.local.key
 
#Génération et signature du CSR
openssl req -config openssl.cnf \
  -key private/labinfo.mairie.local.key \
  -new -sha256 -out csr/labinfo.mairie.local.csr.pem
 
openssl ca -config openssl.cnf \
 -extensions server_cert -days 365 -notext -md sha256 \
 -in csr/labinfo.mairie.local.csr.pem \
 -out certs/labinfo.mairie.local.pem
 
chmod 444 certs/labinfo.mairie.local.pem
 
# vérifier le certificat
openssl verify -CAfile certs/ca-chain.cert.pem certs/labinfo.mairie.local.pem
 
# créer la chaine de certificats certificat + ca intermediaire + ca
cat certs/labinfo.mairie.local.pem certs/ca-chain.cert.pem > ~/dev/labinfo.mairie.local.crt
cp private/labinfo.mairie.local.key ~/dev/

Une fois le certificat et la clé générés, on commence la création des services

docker image build --tag tnf/red:stable-alpine red
 
docker container run --rm --name red --detach -p 443:443 -p 80:80 tnf/red:stable-alpine

Configuration de Traefik

La configuration statique va définir les entrypoints et la connexion au provider (le docker engine local). Cela peut être fait via un fichier de configuration YML ou via les variables d'environnement dans le docker-compose.

docker pull traefik:2.5.3

Le fichier de configuration

 

Références