christoph ender's
blog
sunday the 8th of september, 2024
ecdsa with traefik
In the context of the BSI's new requirements for TLS
I've been looking at a way to configure traefik
to use ECDSA certificates. Here's an example with
traefik having two certificate providers configured:
le-rsa2048
for RSA 2048-based certificates and
le-ecdsa
for ECDSA certificates.
services: traefik: image: traefik:latest ports: - 80:80 - 0.0.0.0:443:443 - 127.0.0.1:8080:8080 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./acme.json:/acme.json - ./traefik.log:/traefik.log command: - --api - "--log.level=DEBUG" - "--accesslog=true" - "--api.insecure=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.ep1.address=:443" - "--entrypoints.ep0.address=:80" - "--entrypoints.ep0.http.redirections.entryPoint.to=ep1" - "--entrypoints.ep0.http.redirections.entryPoint.scheme=https" - "--certificatesresolvers.le-ecdsa.acme.email=me@example.org" - "--certificatesresolvers.le-ecdsa.acme.storage=/acme.json" - "--certificatesresolvers.le-ecdsa.acme.keytype=EC384" - "--certificatesresolvers.le-ecdsa.acme.httpchallenge.entrypoint=ep0" - "--certificatesresolvers.le-rsa2048.acme.email=me@example.org" - "--certificatesresolvers.le-rsa2048.acme.storage=/acme.json" - "--certificatesresolvers.le-rsa2048.acme.keytype=RSA2048" - "--certificatesresolvers.le-rsa2048.acme.httpchallenge.entrypoint=ep0" labels: traefik.enable: 'true' whoami: image: "traefik/whoami" container_name: "simple-service" labels: - "traefik.enable=true" - "traefik.http.routers.whoami.rule=Host(`example.org`)" - "traefik.http.routers.whoami.entrypoints=ep1" - "traefik.http.routers.whoami.tls=true" - "traefik.http.routers.whoami.tls.certresolver=le-ecdsa"