
ravensorb/traefik-certificate-exporter该Docker镜像提供了一个工具,用于从Traefik的JSON文件中提取ACME证书(如Let's Encrypt证书)。工具设计为监控指定文件夹中匹配特定文件模式的文件,当检测到文件变化时,会处理这些文件并将其中的证书提取到指定的输出路径。
!Github Tags !Docker Pulls
bashdocker pull ravensorb/traefik-certificate-exporter:latest
适用于需要将Traefik管理的ACME证书导出供其他服务(如Nginx、Apache、邮件服务器等)使用的场景,实现证书的集中管理与自动同步。
以下命令监控以"acme"开头且包含解析器名称"resolver-http"的JSON文件:
bashdocker run -it ravensorb/traefik-certificate-exporter:latest \ -v /mnt/traefik-data/letsencrypt:/data \ -v /mnt/certs:/certs \ -e "TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_TRAEFIKRESOLVERID=resolver-http" \ -e "TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_FILESPEC=acme-*.json"
通过挂载配置文件目录运行,配置文件(config.yml)需放置在本地./data/config目录:
bashdocker run -it ravensorb/traefik-certificate-exporter:latest \ -v ${PWD}/data/config:/config \ -v /mnt/traefik-data/letsencrypt:/data
创建docker-compose.yml文件:
yamlservices: traefik-certificate-exporter: image: ravensorb/traefik-certificate-exporter:latest environment: # - TRAEFIK_CERTIFICATE_EXPORTER_CONFIGFILE="/config/config.yaml" # 配置文件路径 # - TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_DATAPATH="/data" # 查找Traefik证书JSON文件的基础路径 # - TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_FILESPEC="*.json" # 搜索文件模式(可指定具体文件名) # - TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_OUTPUTPATH="/certs" # 证书导出基础路径 # - TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_TRAEFIKRESOLVERID= # 要匹配的解析器ID(可选) # - TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_FLAT=false # 是否在单个文件夹中导出证书(而非子文件夹) # - TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_RESTARTCONTAINER=false # 证书导出后是否重启容器 # - TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_DRYRUN=false # 干运行模式(仅显示导出内容,不实际创建文件) # - TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_RUNATSTART=true # 启动时立即执行导出 - TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_RESOLVERINPATHNAME=true # 导出路径中包含解析器名称 - TRAEFIK_CERTIFICATE_EXPORTER_LOGGINGLEVEL=INFO # 日志级别 # - TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_INCLUDE_DOMAINS= # 仅导出的域名列表(逗号分隔) # - TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_EXCLUDE_DOMAINS= # 排除导出的域名列表(逗号分隔) volumes: - /var/run/docker.sock:/var/run/docker.sock:ro # 仅在需要重启容器时挂载 - ./data/config:/config:rw # 仅在使用配置文件时挂载 - ./data/letsencrypt:/data:ro # ACME文件位置 - ./data/certs:/certs:rw # 证书导出位置
启动服务:
bashdocker compose up -d
通过挂载配置文件目录运行,配置文件需放置在本地./data/config目录:
yamlservices: traefik-certificate-exporter: image: ravensorb/traefik-certificate-exporter:latest volumes: - /var/run/docker.sock:/var/run/docker.sock:ro # 仅在需要重启容器时挂载 - ./data/config:/config:rw # 配置文件目录 - ./data/letsencrypt:/data:ro # ACME文件位置 - ./data/certs:/certs:rw # 证书导出位置
启动服务:
bashdocker compose up -d
| 环境变量 | 描述 | 默认值 |
|---|---|---|
| TRAEFIK_CERTIFICATE_EXPORTER_CONFIGFILE | 配置文件路径 | - |
| TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_DATAPATH | 查找Traefik证书JSON文件的基础路径 | /data |
| TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_FILESPEC | 搜索文件模式 | *.json |
| TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_OUTPUTPATH | 证书导出基础路径 | /certs |
| TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_TRAEFIKRESOLVERID | 要匹配的解析器ID(可选) | - |
| TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_FLAT | 是否在单个文件夹中导出证书 | false |
| TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_RESTARTCONTAINER | 证书导出后是否重启容器 | false |
| TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_DRYRUN | 干运行模式 | false |
| TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_RUNATSTART | 启动时立即执行导出 | true |
| TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_RESOLVERINPATHNAME | 导出路径中包含解析器名称 | - |
| TRAEFIK_CERTIFICATE_EXPORTER_LOGGINGLEVEL | 日志级别 | INFO |
| TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_INCLUDE_DOMAINS | 仅导出的域名列表(逗号分隔) | - |
| TRAEFIK_CERTIFICATE_EXPORTER_SETTINGS_EXCLUDE_DOMAINS | 排除导出的域名列表(逗号分隔) | - |
本工具深受 DanielHuisman 和 Marc Brückner 出色工作的启发。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务