Use Let's Encrypt with Traefik

Hi,
I’ve just generated a Let’s Encrypt SSL Certificate for my domain using Certbot. How do I link the certificate with the traefik server ?

Here is my docker-compose.yml file

version: "3"

services:
  traefik:
    image: "traefik"
    command:
      - "--api=true"
      - "--api.insecure=true"
      - "--api.dashboard=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
      - "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
      - "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
    ports:
      - "443:443"
      - "80:80"
    volumes:
      - ${DATA_FOLDER}/letsencrypt:/letsencrypt
      - /var/run/docker.sock:/var/run/docker.sock:ro
  n8n:
    image: n8nio/n8n
    ports:
      - "127.0.0.1:5678:5678"
    labels:
      - traefik.enable=true
      - traefik.http.routers.n8n.rule=Host(`${DOMAIN_NAME}`)
      - traefik.http.routers.n8n.tls=true
      - traefik.http.routers.n8n.entrypoints=websecure
      - "traefik.http.routers.n8n.rule=PathPrefix(`/${SUBFOLDER}{regex:$$|/.*}`)"
      - "traefik.http.middlewares.n8n-stripprefix.stripprefix.prefixes=/${SUBFOLDER}"
      - "traefik.http.routers.n8n.middlewares=n8n-stripprefix"
      - traefik.http.routers.n8n.tls.certresolver=mytlschallenge
      - traefik.http.middlewares.n8n.headers.SSLRedirect=true
      - traefik.http.middlewares.n8n.headers.STSSeconds=315360000
      - traefik.http.middlewares.n8n.headers.browserXSSFilter=true
      - traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
      - traefik.http.middlewares.n8n.headers.forceSTSHeader=true
      - traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}
      - traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
      - traefik.http.middlewares.n8n.headers.STSPreload=true
      - traefik.http.middlewares.n8n.headers.accessControlAllowMethods=GET,OPTIONS,PUT,POST,DELETE,PATCH
      - traefik.http.middlewares.n8n.headers.accessControlAllowOrigin=*
      - traefik.http.middlewares.n8n.headers.accessControlAllowHeaders=Origin,Content-Type,X-Amz-Date,Authorization,X-Api-Key,$
      - traefik.http.middlewares.n8n.headers.accessControlAllowCredentials=true

    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER
      - N8N_BASIC_AUTH_PASSWORD
      - N8N_HOST=${DOMAIN_NAME}
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - N8N_PATH
      - WEBHOOK_TUNNEL_URL=https://${DOMAIN_NAME}${N8N_PATH}
      - VUE_APP_URL_BASE_API=https://${DOMAIN_NAME}${N8N_PATH}
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ${DATA_FOLDER}/.n8n:/root/.n8n

Thanks

Sorry but this forum is only for n8n related questions as that is the only thing we really have experience with and can so offer proper support for. Your question is however only traefik related (the only thing it has to do with n8n is that you need it working to use n8n). Not that I do not want to help you but I am sadly in no way a traefik expert. For that reason would it be best if you check the traefik documentation or ask in a traefik-forum. Sorry.

Yes, its more of a traefik related question, it will be better to check their docs if available.
Thanks Jan

1 Like