一、背景与挑战
- 多域名管理复杂
运维团队往往需要为多个子域、泛域名乃至不同项目的域名分别申请证书,手动操作容易出错且耗时。 - 续期易忘风险
主流免费证书(如 Let’s Encrypt)有效期仅 90 天,需要定期续期,人工监控门槛高,一旦遗漏将导致服务中断。 - 数据隐私与安全
部分 SaaS 证书管理平台要求将域名及关联信息存储于第三方云端,存在隐私泄露风险。
二、核心特性
- 全流程自动化工作流:
用户可在 WebUI 或命令行中一键编排“申请 → DNS-01 验证 → 签发 → 部署 → 续期”流程,支持自定义并发策略,无需人工干预。 - 多证书类型与算法:
支持单域名、多域名及泛域名,多选 RSA 或 ECC 算法,灵活满足不同业务对性能和安全的需求。 - 多格式输出:
可导出 PEM、PFX、JKS 等常用格式,兼容各种服务器、容器、Java Keystore 等场景。 - 丰富的集成能力:
- DNS 提供商:阿里云、腾讯云、Cloudflare、GoDaddy 等 20+ 厂商;
- 部署目标:SSH/本地、Webhook、Kubernetes Secret,及阿里云 OSS/CDN、腾讯云 CLB、AWS ACM/CloudFront 等 60+ 种下游环境;
- 通知渠道:邮件、Webhook、钉钉、飞书、企业微信、Telegram、Server 酱等多种告警方式。
三、系统架构与生命周期流程
Certimate 基于 ACME 客户端协议,内部主要组件与流程如下:
- 申请阶段:用户通过 WebUI 或 CLI 提交域名、DNS 提供商及部署目标配置;
- 验证阶段:自动调用 DNS 服务商 API,添加/删除 DNS-01 所需的 TXT 记录完成域名所有权验证;
- 签发阶段:向 ACME 机构(Let’s Encrypt、ZeroSSL 等)请求签发,并将证书与私钥存储到本地 SQLite 数据库;
- 部署阶段:根据配置调用对应插件(SSH、云厂商 API、Kubernetes API 等)将证书下发到目标环境;
- 续期机制:基于用户设定的检查周期,定时触发验证与签发流程,实现自动续期。
四、安装与部署
1. 二进制包安装
- 从 GitHub Releases 下载对应平台的预编译二进制包;
- 解压后执行:
./certimate serve
- 可结合 systemd(Linux)、Windows 服务、launchd(macOS)等方式实现开机自启。
2. Docker 快速部署
mkdir -p ~/.certimate && \
cd ~/.certimate && \
curl -O https://raw.githubusercontent.com/usual2970/certimate/main/docker/docker-compose.yml && \
docker compose up -d
- 支持指定镜像版本:
docker pull registry.cn-shanghai.aliyuncs.com/usual2970/certimate:v0.3.0
- 国内用户可配置阿里云加速器。
3. 源码编译与面板部署
- 克隆源码并运行:
git clone https://github.com/usual2970/certimate.git make local.run
- 可在宝塔、1Panel 等面板中通过“应用商店”或 Docker 容器方式一键部署。
五、配置与管理
5.1.WebUI 与命令行
- 默认监听
127.0.0.1:8090
,可通过环境变量或启动参数自定义地址、端口与 HTTPS; - 支持 Chrome v119+、Firefox 等现代浏览器。citeturn7view0turn8view0
5.2.授权与凭证
- 在“授权管理”页面配置各云厂商 API 凭证;
- 内置阿里云、腾讯云、AWS、Azure、Cloudflare 等最小权限示例,保证安全合规。
六、升级、备份与还原
6.1.升级流程
- 二进制方式:替换可执行文件并重启服务;
- Docker 方式:执行
docker compose pull
并重启容器; - 注意:重大版本跳跃前请参考官方迁移指南,升级前务必备份数据。
6.2.备份与还原
- 数据存储在
~/.certimate/pb_data/
内的 SQLite (data.db
、auxiliary.db
) 及storage/
、backups/
目录; - 停止服务后复制或还原整个
pb_data
目录即可完成备份/还原。
七、数据迁移
从 v0.2 升级到 v0.3.0 时,系统会自动迁移旧版数据,包括 ACME 账户、授权信息等;若从 alpha 版升级,可保留全部历史配置与部署记录。
八、常见问题解答
- 是否提供 SaaS? 目前仅支持私有化部署,源码与二进制包均开源。
- 证书有效期? 依赖上游 CA,一般为 90 天,Certimate 可轮询自动续期。
- 忘记管理员密码或修改监听地址? 可通过 CLI 命令重置密码或启动参数指定新地址。
- Docker 时区偏差? 默认使用 UTC,可挂载宿主机
/etc/localtime
及/etc/timezone
解决。 - 部署/验证失败排查:详见官方文档的常见错误与日志分析章节。