跳转至

acmecast

证书自动签发与部署系统:以 ACME 协议向 Let's Encrypt(或自建 CA)申请证书, 按流水线自动完成 DNS 挑战、证书入库与部署到本地/远程目标,并通过 cron 或到期 扫描自动续期。提供带鉴权的 REST API 与 OpenAPI 文档,为前端 SPA 与第三方集成 提供统一入口。

能力一览

  • ACME 申请:内置 Let's Encrypt(含 Staging)、ZeroSSL、Google、SSL.com 五家 CA 端点,支持自定义目录 URL 与 EAB(外部账号绑定);账号凭据首次使用时注册、 之后自动复用。
  • DNS-01 挑战:内置 Cloudflare 与阿里云 DNS 提供商,写入后等待权威 NS 可见再通知 CA 验证,支持通配符证书。
  • 流水线编排:cert.apply(申请)→ cert.store(入库)→ cert.deploy (部署)三步串成流水线,步骤可停用、产物逐段传递。
  • 部署目标:本地文件系统(原子替换 + 权限/属主控制 + 重载命令)与 SSH 远程主机(临时文件 + 原子 mv + 重载命令);同指纹重复部署自动跳过写入。
  • 自动续期:cron 表达式定时触发,或按域名集合做到期扫描(默认阈值 30 天), 同窗口重复触发自动去重,全部触发落审计记录。
  • 证书管理:证书入库去重、到期状态判定(健康/临期/已过期)、下载 PEM/DER/PFX/P7B/JKS 五种格式、向 CA 吊销并归档。
  • webhook 通知:证书申请、部署成功后向飞书(Lark)/钉钉等 IM 群机器人 推送文本消息,支持签名校验与按事件订阅,投递不阻塞流水线。
  • 安全:全部 /api/ 端点(除登录与文档)强制 Bearer JWT;管理员口令以 Argon2 PHC 存储;登录失败限流锁定;凭据以 AES-256-GCM 加密落库,密钥只存在 于环境变量。

阅读路径

我想…… 看这里
尽快跑起来 快速开始 / Docker 部署
了解整体结构 架构设计
配置服务 配置参考
配 DNS 与账号凭据 凭据体系 / DNS 提供商
建一条签发流水线 流水线 / 部署目标
申请/部署成功后推送 IM webhook 通知(配置参考)
自动续期 定时调度与自动续期
对接 API REST API
换数据库 / 备份 数据库与数据目录
参与开发 本地开发
出了问题 排障与已知限制

许可

Apache-2.0,见仓库根 LICENSE。