起因:总有那么些原因要用到 私钥 和 证书 的,而 Traefik Caddy 等又是能自动申请并续存证书。本站正好用到的是Traefik,而Traefik 并没有分开存私钥和证书的想法,使用的方法是把私钥和证书都存到acme.json中。那么自动分割对小白来说就很有必要。
关键词:
traefik 2 acme.json dump
找到Idez的库,经测试轻松容易生成2个独立文件,注意mount acme.json 文件目录即可。
具体用法,跳转详情页,这里给出最简单的用法,compose文件创建certdump 容器,分割所有存储的域名信息。
Dump all certificates
The environment variable
DOMAIN
can be left out if you want to dump all available certificates.version: '3.7' services: certdumper: image: humenius/traefik-certs-dumper:latest volumes: - ./traefik/acme:/traefik:ro - ./output:/output:rw # Don't set DOMAIN # environment: # - DOMAIN=example.org
PS: 本站Traefik 结构沿用中:
traefik/acme -> /dataoutput -> data/ssl
生成的是一个 cert.pem(证书文件)和key.pem(私钥文件)。
具体的docker-compose.yml 配置如下:
version: '3.7'
services:
traefik:
image: traefik:latest
container_name: traefik
restart: always
security_opt:
- no-new-privileges:true
ports:
- 80:80
- 443:443
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data/traefik.yml:/traefik.yml:ro
- ./data/acme.json:/acme.json
# Add folder with dynamic configuration yml
- ./data/configurations:/configurations
networks:
- proxy
# Watch acme.json and dump certificates to files
certdumper:
image: humenius/traefik-certs-dumper:latest
volumes:
- ./data:/traefik:ro
- ./data/ssl:/output:rw
# Don't set DOMAIN
# environment:
# - DOMAIN=example.org
volumes:
data:
networks:
proxy:
external: true
更多的相关讨论,参考