HTTPS 加密是当前网站和 APP 的标配,然而数字证书的管理,包括申请和续签是耗时费力的事情,特别是当你使用的服务有很多的情况下。
耕读君在阿里云、腾讯云有多个项目用了 CDN 和对象存储,然而免费证书只有 3 个月有效期,每次都需要手动设置提醒避免遗忘,还要一个个申请新证书、部署证书,非常辛苦。经过查找和测试,发现 CertD 可以很方便地自动化批量管理数字证书。
一、CertD 简介
CertD 是一个开源、免费、全自动的证书管理工具(GitHub 地址:https://github.com/certd/certd ),它具有以下功能特性:
- 全自动申请证书
- 全自动部署证书
- 多域名、泛域名打到一个证书上
- 多证书格式支持
- 支持私有化部署
- 多数据库支持
作为用户,最关心的便是其全自动申请、部署证书的能力,以及私有化部署的便利。这是耕读君在本地部署的 CertD 后台截图,可以看到它支持大量云服务、产品及使用场景。

二、安装部署 CertD
前面说到,CertD 支持私有化部署,那么是否只能运行在具有公共网络的服务器上呢?经过测试,它是可以在家庭网络设备上部署和正常工作的。
CertD 支持多种部署方式,这里以最便捷的 Docker 部署为例。
首先要安装 docker、docker-compose,可以参考 Docker 官方手册,这里不再赘述:Get started | Docker Docs
运行以下命令完成部署:
# 随便创建一个目录
mkdir certd
# 进入目录
cd certd
# 下载docker-compose.yaml文件,或者手动下载放到certd目录下
wget https://gitee.com/certd/certd/raw/v2/docker/run/docker-compose.yaml
# 可以根据需要修改里面的配置
# 1.修改镜像版本号【可选】
# 2.配置数据保存路径【可选】
# 3.修改端口号【可选】
vi docker-compose.yaml # 【可选】
# 启动certd
docker compose up -d
浏览器访问测试:
http://your_server_ip:7001
https://your_server_ip:7002
默认账号密码:admin/123456
如果能够正常访问,即证明部署成功。登录后修改密码,接着就可以开始创建证书流水线,让 CertD 解放我们的双手。
三、创建证书流水线
这是耕读君创建的一条证书流水线,虽然只有一条,但它能够自动申请阿里云、腾讯云旗下的域名,并部署到这两家云服务的 CDN 和 OSS 服务上。

你可能会有疑问:A 服务商的域名,但绑定的是 B 服务商的服务,这种情况下 CertD 可以实现证书的自动申请和部署吗?
答案是完全没问题。CertD 会先在本地申请好证书,之后上传到服务商,然后部署到 CDN 等服务上,因此证书的申请、部署是独立的,申请下来的证书也可以在不同云服务上复用。在证书流水线上,我们可以为每一个域名服务商设置一个申请证书的操作节点,同时申请该服务商下注册的根域名和通配符域名(如 idcbuy.net 和 *.idcbuy.net),在所有证书申请节点的后面添加部署节点。
具体操作可以参考官方示例,这里就不重复造轮子了:step.md · certd/certd – Gitee.com 。其中的关键点在于获取服务商的 API key 用于授权,步骤可参考以下官方手册。不过耕读君有个建议,从账户安全角度出发,建议创建子账户,仅分配必需的访问权限,不要使用拥有全部账户权限的 API key。
当证书流水线创建好之后,它会定时检查证书有效期,如果没到临近过期的时间,CertD 会自动跳过;如果临近过期,则 CertD 会根据流水线的配置自动申请和部署证书。建议流水线创建完成后手动执行一次,并且登录云服务器控制台确认效果。
四、通知设置
免费用户可以添加两种通知方式——邮件和自定义 Webhook. 如果只需简单了解 CertD 的运行情况,添加邮件通知即可。
在 CertD 的设置 – 通知设置页面里,我们可以添加电子邮件通知。系统采用 SMTP 发信,因此需要获取邮件提供商的 SMTP 信息。部分邮箱,如 QQ 邮箱和网易163、126邮箱需要申请第三方客户端的独立密码,可以在邮箱的设置中查找。
当 CertD 成功申请和部署证书,它会发送邮件通知。如果没有收到,可以检查一下是否被归类为垃圾邮件,给发信邮箱添加到白名单即可。

五、写在最后
HTTPS 数字证书是当今互联网安全的重要基础,却被国内云服务作为赚钱工具,就算是使用它们自家的其他服务,免费证书竟然也只给 90 天有效期。反观 CloudFlare,接入的域名直接给 10 年有效期的 SSL 证书,全程自动无需干预,还免费,真的是云泥之别。
所以,当前用着国内云服务,需要数字证书的小伙伴,赶紧用 CertD 解放双手吧。好用的话记得去项目的 GitHub 仓库 点点 Star,给作者更多鼓励。