用 CertD 自动化管理阿里云、腾讯云等云服务的 HTTPS 数字证书

HTTPS 加密是当前网站和 APP 的标配,然而数字证书的管理,包括申请和续签是耗时费力的事情,特别是当你使用的服务有很多的情况下。

耕读君在阿里云、腾讯云有多个项目用了 CDN 和对象存储,然而免费证书只有 3 个月有效期,每次都需要手动设置提醒避免遗忘,还要一个个申请新证书、部署证书,非常辛苦。经过查找和测试,发现 CertD 可以很方便地自动化批量管理数字证书。

一、CertD 简介

CertD 是一个开源、免费、全自动的证书管理工具(GitHub 地址:https://github.com/certd/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 服务上。

耕读君的 CertD 证书流水线

你可能会有疑问: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 成功申请和部署证书,它会发送邮件通知。如果没有收到,可以检查一下是否被归类为垃圾邮件,给发信邮箱添加到白名单即可。

CertD 证书申请部署成功通知

五、写在最后

HTTPS 数字证书是当今互联网安全的重要基础,却被国内云服务作为赚钱工具,就算是使用它们自家的其他服务,免费证书竟然也只给 90 天有效期。反观 CloudFlare,接入的域名直接给 10 年有效期的 SSL 证书,全程自动无需干预,还免费,真的是云泥之别。

所以,当前用着国内云服务,需要数字证书的小伙伴,赶紧用 CertD 解放双手吧。好用的话记得去项目的 GitHub 仓库 点点 Star,给作者更多鼓励。

耕读君
耕读君

一个筋斗十万八千里,说明上云好啊

文章: 209

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注