Een aantal weken geleden ben ik in aanraking gekomen met Traefik. Dat lijkt toch een stuk flexibeler en beter onderhouden te zijn dan HAProxy op pfSense.
Dat laatste gebruik ik nu om extern verkeer te routeren naar de diverse (web)servers binnen mijn thuisnetwerk. Dat werkt allemaal aardig, maar het vergt zoveel (handmatig) aanpassen en de configuratie file van HAProxy is (mede omdat het gegenereerd wordt) een draak.
Op dit moment heb stuur ik verkeer van poort 80 op het WAN-adres (via NAT) door naar de server binnen mijn thuisnetwerk. Op deze server heb ik nu Traefik geconfigureerd en alles werkt prima.
Op dit moment sta ik op het punt om ook poort 443 en daarmee TLS te gaan doorsturen naar de server.
Ik heb het domeinnaam van mijn WAN-adres geregistreerd bij TransIP. Echter kom ik niet helemaal uit de documentatie hoe ik deze binnen de config-file van Traefik moet configureren. Ik gebruik de YAML notatie.
Traefik zelf draait binnen een docker-compose omgeving. Waarnaast ik ook een whoami-container heb draaien om alles mee te testen.
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| version: '3'
services:
reverse-proxy:
image: traefik:v2.1
container_name: traefik
network_mode: host
volumes:
# So that Traefik can listen to the Docker events
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.yml:/etc/traefik/traefik.yml
- ./config:/traefik/config
whoami:
# A container that exposes an API to show its IP address
image: containous/whoami
labels:
- "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)" |
In de "statische" configuratie staat nu het volgende
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| entryPoints:
web:
address: ":80"
websecure:
address: ":443"
providers:
docker: {}
file:
directory: /traefik/config
watch: true
api:
insecure: true
dashboard: true
debug: true |
En als laatste de config van de router voor
whoami
YAML:
1
2
3
4
5
6
| ## Dynamic configuration
http:
routers:
whoami-router:
rule: "Host(`whoami.localhost`, `whoami.domeinnaam.nl`)"
service: whoami-traefik@docker |
Zoals eerder aangegeven, kan ik prima vanuit buiten op
whoami.domeinnaam.nl en intern via
whoami.localhost op de whoami-container komen. Ik zie dan ook alle bijbehorende IP-adressen en headers.
Nu wil ik het ook graag gaan configureren voor HTTPS / TLS. Ik heb in dit topic een deel van de configuratie van
lolgast in "[Traefik - Proxy/Loadbalancer] Ervaringen & Discussie" geprobeerd om te knutselen naar mijn configuratie, maar ik krijg het niet voor elkaar.
Ik heb het idee dat de configuratie nog op versie 1.x van Traefik berust.
Ik heb het volgende gedaan:
In de CP van TransIP heb ik een whitelist "Key Pairs" aangemaakt met als label
traefik. Natuurlijk heb ik ook mijn externe IP-adres toegevoegd aan de whitelist
Nu probeer ik de informatie in
https://docs.traefik.io/https/acme/#providers en
https://go-acme.github.io/lego/dns/transip/ te mappen naar de zojuist verkregen "Key Pairs".
Ik snap echter niet hoe ik dit in Traefk moet invullen / configureren.
Wie kan mij de juiste kant op duwen?