
devopsansiblede/acme_certs_extractACME Certificate Extract 是一款用于从 ACME 协议获取的证书文件(如 Træfik 生成的 acme.json)中提取证书的工具,以便证书复用。该工具兼容 Træfik v1、v2 版本,同时支持 ACME v1、v2 协议。
*)为指定字符串,避免文件名非法字符。通过 docker run 命令直接运行,需挂载存放 ACME 文件的目录和证书输出目录:
bashdocker run devopsansiblede/acme-cert-extract \ -v $(pwd)/acme:/acme \ # 挂载ACME文件所在目录(默认查找acme.json) -v $(pwd)/certs:/certs # 挂载证书输出目录
项目提供 docker-compose.yml 文件,可用于本地开发或测试最新变更:
yaml# 示例 docker-compose.yml(具体以项目实际文件为准) version: '3' services: acme-cert-extract: image: devopsansiblede/acme-cert-extract volumes: - ./acme:/acme # 本地ACME目录挂载至容器内/acme - ./certs:/certs # 本地证书输出目录挂载至容器内/certs environment: - DEBUG=True # 可选:开启调试模式 - LIMIT_FQDN=example.com # 可选:限制仅处理example.com
启动命令:
bashdocker-compose up -d
注意:项目中的
acme_example.json为测试用例,包含无意义数据,不可用于实际证书提取场景。
通过环境变量调整工具行为,所有布尔值需使用 Python 风格(True/False)。
| 环境变量 | 默认值 | 描述 |
|---|---|---|
ACMEFILE | acme.json | 待解析的 ACME 文件名,可根据实际需求调整。 |
ACMEDIR | /acme | ACME 文件所在目录,需挂载宿主机目录至该路径。 |
CERTSDIR | /certs | 证书输出目录,需挂载宿主机目录至该路径。 |
CERTSPLIT | -----BEGIN CERTIFICATE----- | 证书分割标识,请勿修改。 |
COLOR_ERROR | 1;31 | 错误消息 ANSI 颜色码(格式:样式;前景色,如 1;31 为红色加粗)。 |
COLOR_INFO | 0 | 信息消息 ANSI 颜色码(0 为默认样式)。 |
COLOR_SUCCESS | 0;32 | 成功消息 ANSI 颜色码(0;32 为绿色)。 |
COLOR_WARN | 0;33 | 警告消息 ANSI 颜色码(0;33 为黄色)。 |
CRT_ARCHIVE | True | 是否启用证书归档(保留历史版本)。 |
DEBUG | False | 是否开启调试模式(输出详细日志)。 |
REPLACE_ASTERISK | STAR | 替换域名中星号(*)的字符串(如 *.example.com 转为 STAR.example.com)。域名会转为小写,但此字符串不额外处理。 |
STORE_FLAT_CRTS | True | 是否启用扁平化存储(所有证书存放在 flat 目录,不按域名分目录)。 |
LIMIT_FQDN | – | 限制处理的 FQDN 列表(逗号分隔,如 foo.example.com,bar.example.com)。 |
RUN_SCRIPT | – | 证书更新后执行的脚本名(需挂载至容器内 ${WORKDIR} 目录,无需路径前缀)。用于触发后续操作(如重启容器)。 |
WORKDIR | /certs_extract | 工作目录,除非重新构建镜像,否则请勿修改。 |
环境变量中的颜色码为 ANSI 转义序列的数值部分(脚本自动添加前缀 \u001b[ 和后缀 m)。格式由多个部分组成,用分号分隔:
0(默认)、1(加粗)、4(下划线)等。3 开头,如 31(红色)、32(绿色)、33(黄色)。4 开头,如 43(黄色背景)。示例:1;31 表示“加粗红色前景色”,对应错误消息;0;32 表示“默认绿色前景色”,对应成功消息。
工具在 CERTSDIR(默认 /certs)下生成以下目录结构:
certs 目录(按域名分目录存储)按域名创建子目录,存放当前证书文件。包含主域名及所有主题备用名称(SANs)对应的目录。每个域名目录下文件:
privkey.pem:私钥cert.pem:证书chain.pem:证书链fullchain.pem:完整证书链(证书+证书链)flat 目录(扁平化存储)所有证书文件直接存放在此目录,文件名格式为 <域名>.<类型>:
<域名>.key:私钥(对应 privkey.pem)<域名>.crt:证书(对应 cert.pem)<域名>.chain.pem:证书链(对应 chain.pem)<域名>_full.crt:完整证书链(对应 fullchain.pem)说明:仅当
STORE_FLAT_CRTS=True时生成此目录。
archive 目录(证书归档)按域名和时间戳存储历史证书版本,目录结构为 archive/<域名>/<时间戳>/,包含该时间点的证书文件。时间戳格式为 %Y%m%d%H%M%S(如 20240520153045)。
说明:仅当
CRT_ARCHIVE=True时生成此目录。
CONTRIBUTING.md 文件。





探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务