La nuova release di Traefik con la major release 3, ha introdotto alcune novità. Tra queste c’é l’integrazione con i certificati di Tailscale. Questa novità permette di avere dei certificati per l’https in modo semplice.
Naturalmente ci sono alcune limitazioni e vanno considerate (installazione su docker):
- Tailscale deve essere funzionante sulla macchina sulla quale gira docker
- al momento (vedi #9772) può essere richiesto solo il certificato della macchina locale (hostname definito su Tailscale)
Configurazione di Tailscale#
Si trovano parecchie guide su come creare delle reti Tailscale, quindi non farà parte di questa guida. Per rendere funzionante il passo successivo si devono configurare i seguenti punti (console di amministrazione, nel tab DNS):
- deve essere definito un nome per la Tailnet (in questo esempio yak-bebop.ts.net)
- attivare il MagicDNS
- attivare i certificati HTTPS
Per testare il funzionamento servono due macchine, una con docker (in questo esempio userò server-traefik come hostname su Tailscale). Entrambe devono far parte di una rete Tailscale e devono poter comunicare tra di loro (attenzione se avete configurato delle ACL).
Prima di passare al passo successivo assicurarsi che la rete Tailscale sia avviata con il comando:
sudo tailscale up
Configurazione di Traefik#
Ecco un esempio di configurazione con docker compose per avere un esempio funzionante (derivato dalla documentazione).
docker-compose.yml
services:
  traefik:
    image: traefik:v3.0
    container_name: traefik
    command:
      - "--log.level=DEBUG"
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.websecure.address=:443"
      - "--entrypoints.web.address=:80"
      - "--certificatesresolvers.myresolver.tailscale=true"
    ports:
      - 80:80
      - 443:443
      - 8080:8080
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock
  whoami:
    image: containous/whoami:latest
    container_name: whoami
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.rule=Host(`server-traefik.yak-bebop.ts.net`)"
      - "traefik.http.routers.whoami.entrypoints=websecure"
      - "traefik.http.routers.whoami.tls.certresolver=myresolver"
Ora è possibile creare i container con il comando:
sudo docker compose up -d
Adesso è possibile inserire l’indirizzo https://server-traefik.yak-bebop.ts.net nel browser per visualizzare le informazioni del container ẁhoami e buon divertimento! Se non funziona potete collegarvi alla porta 8080 e vedere l’attuale configurazione caricata da Traefik.



