{{tag>sysadmin traefik reverse-proxy incomplet}} ====== 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 [[sysadmin:linux:gestion_certificats:devenir_autorite_de_certification_avec_openssl|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 ===== * https://zestedesavoir.com/billets/3355/traefik-v2-https-ssl-en-localhost/