五分钟跑通第一条流水线
CertHub 是完全免费的 SSL 证书自动化管理系统:申请、DNS 验证、部署、监控与续期全部编排进一条可视化流水线,无任何数量限制。启动服务后按下面三步即可完成首次签发。
配置授权
在「授权管理」中添加 DNS 或主机凭据,凭据以 AES-GCM 加密入库,可一键测试连通性。
创建流水线
选择签发机构、填写域名、勾选部署目标;内置模板可直接套用,阶段与任务可拖拽编排。
手动运行一次
点击「保存并运行」,底部执行日志逐行输出,运行成功后证书自动进入证书库。
首次登录请立即修改默认密码;若服务器无法访问公网 80 端口,请在安全组中放行服务端口后再访问。
启动服务与访问
安装脚本会自动创建虚拟环境、安装依赖、构建前端并启动服务,无需手工准备 Node 环境。
Windows
:: 进入项目目录后双击或在 CMD 中执行 start.bat
Linux / macOS
cd certhub chmod +x start.sh ./start.sh
访问与登录
地址:http://127.0.0.1:8000 默认账号:admin 默认密码:123456
默认密码仅用于首次登录,登录后请在「系统设置 → 个人中心」中修改;忘记密码时可联系管理员重置。
Docker 私有化部署
生产环境建议以容器方式部署,并将数据目录挂载到宿主机,保证数据库与证书文件在升级、重建后仍然保留。镜像与编排配置以项目仓库提供的文件为准。
| 项目 | 建议 |
|---|---|
| 数据目录 | 挂载持久化卷,存放 SQLite 数据库与证书文件 |
| 端口映射 | 默认 8000,可反向代理到 80/443 并配置 HTTPS |
| 升级 | 先备份数据目录,再拉取新镜像重建容器 |
流水线、阶段与任务
整套系统围绕三层结构组织,理解这三层即可看懂画布上的任意编排。
- 流水线(Pipeline):一条证书的完整生命周期,包含签发、部署与通知;支持启用 / 停用、分组管理与定时触发。
- 阶段(Stage):流水线中的一个环节,例如「证书申请」「证书部署」,阶段之间按连线顺序执行。
- 任务(Task):阶段内的最小执行单元,如 CertApply、DeployToNginx、Notify,每个任务都有成功与失败后的走向配置。
画布操作
- 右上开关:启用或停用某个阶段;右侧上点配置成功后走向,右侧下点配置失败后走向。
- 点连线可删除,双击卡片打开任务配置,拖动标题条可移动阶段位置。
- 「画布 / 列表」按钮可在图形编排与表单视图之间切换,适合批量核对参数。
触发与历史
- 定时触发:为流水线设置 cron 表达式,例如每月 20 日 01:00 自动续期。
- 手动触发:在详情页点击「保存并运行」立即执行。
- 执行历史:记录每次运行的触发方式、耗时、任务数与结果,可完整回放日志。
凭据的添加与使用
授权是流水线访问外部系统的钥匙。在「授权管理」中按分类添加,供任意流水线引用。
| 分类 | 用途 | 典型示例 |
|---|---|---|
| 云厂商 DNS | 自动写入 / 清理 DNS-01 验证记录 | 阿里云、腾讯云、Cloudflare |
| 主机 / 面板 | 登录服务器下发证书并重载服务 | SSH、宝塔、群晖、Proxmox |
| 证书签发 | 保存 ACME 账户密钥与 EAB 凭据 | Let's Encrypt、ZeroSSL |
| 对象存储 / CDN | 上传证书到云端分发节点 | S3、R2、云厂商 CDN |
- 所有凭据与证书私钥均使用 AES-GCM 加密存储,列表页不回显明文。
- 添加完成后点击「测试」验证连通性,避免流水线运行到一半才暴露凭据错误。
- 遵循最小权限原则:DNS 授权建议仅授予对应域名的解析权限,SSH 建议使用专用密钥。
从申请到入库
CertHub 内置自研 ACME v2 客户端,同时支持云厂商免费证书与本地导入。
签发来源
- ACME 机构:Let's Encrypt、Google Trust Services、ZeroSSL、Buypass、LiteSSL 及自定义 CA,支持 dns-01 / http-01 挑战与 EAB。
- 云厂商免费证书:阿里云、腾讯云、火山引擎,自动完成 DNS 验证与签发,无需登录各家控制台。
- 本地导入:已有证书与自签证书可导入证书库统一管理。
验证方式选择
| 方式 | 适用场景 | 要求 |
|---|---|---|
| dns-01 | 泛域名证书、站点不可公网访问 | 域名 DNS 托管在已支持的服务商 |
| http-01 | 单域名、站点 80 端口可达 | 能将验证文件对外提供 |
泛域名必须使用 dns-01;若 DNS 服务商未内置,可通过「运行命令」或 Webhook 任务接入自建解析。
证书库
签发成功的证书自动入库,可查看域名、签发机构、剩余有效期与入库时间;到期前由流水线自动续期并覆盖部署。
48 个部署插件
证书签发后按流水线配置下发到目标并自动重载服务,覆盖以下几类:
主机 · 中间件
面板 · 集群
CDN · 对象存储
通用任务
- 运行命令 / 脚本部署:在目标主机执行自定义命令,完成插件未覆盖的场景。
- Webhook:将证书推送到自有系统,由对端完成安装。
- 备份证书:把证书归档到指定位置,配合外部备份策略使用。
- 等待:在两个任务之间插入固定延时,适配生效较慢的平台。
让证书永不过期
站点监控
- 录入需要关注的站点,系统周期检测证书状态、有效期与最近检测时间。
- 存在风险的站点在列表中标记,可与流水线联动完成修复。
自动续期
- 流水线按 cron 定时运行,在证书到期前重新签发并下发,旧证书被自动替换。
- 执行失败时按任务配置的失败走向重试或通知,不会静默过期。
通知渠道
内置邮件、Webhook 等共 9 种通知渠道,可在「通知渠道」中添加并测试;流水线的「发送通知」任务会在运行成功或失败时推送结果。
生产环境至少配置一个即时通讯类渠道(如钉钉、企业微信、飞书机器人),确保续期失败能第一时间触达。
凭据与访问安全
- 加密存储:凭据与证书私钥使用 AES-GCM 加密,日志与接口不输出明文。
- 登录防护:支持登录失败锁定与图形验证码,降低暴力破解风险。
- 两步验证:可为管理员账号启用 TOTP,登录时需输入动态口令。
- 审计日志:关键操作留痕,便于追溯谁在什么时间改动了配置。
- 备份:定期备份数据目录;生产环境请固定加密密钥并严格限制数据目录权限。
不要将管理端口直接暴露在公网。确需远程访问时,请通过反向代理启用 HTTPS,并限制来源 IP。
快速排查
流水线运行成功,但目标站点仍提示证书过期?
先在「证书库」确认新证书已入库,再检查部署任务的目标路径与服务重载命令是否正确;部分面板需要手动触发一次重载才会生效。
DNS 验证一直等待生效?
确认授权中的 AccessKey 具备对应域名的解析权限,并检查服务商是否开启在验证期间暂停解析。TTL 较长时可稍后在执行历史中重试该次运行。
忘记管理员密码怎么办?
默认账号为 admin / 123456,若已修改且遗忘,请联系部署机器上的管理员重置,或按部署文档中的说明在服务端重置密码。
如何把 CertHub 接入内网、无法访问公网的环境?
ACME 签发需要公网可达的验证方式,可改用内网可达的 DNS-01 授权(由内网 DNS 出网写记录),或直接导入已有证书由平台统一部署与监控。
更多问题见 官网常见问题。