背景
近期,SSL/TLS证书有效期将迎来大幅缩短。根据CA/浏览器论坛2025年4月的投票结果,证书最长有效期将从目前的398天分阶段缩减,最终在2029年3月降至47天。
由于这一变化,目前市面上百度云、火山引擎等免费一年单域名的TrustAsia DigiCert等证书已经消失,也转向了需要付费。而免费剩下的仅有单域名有效期3个月的证书。更新证书成了一件头疼的事情,除了推动这个有效期缩短的巨头们:微软、苹果也弄出过证书忘记续期的伄事之外,对于在不同平台都有部署的用户来说,手动更新证书显得更加难蚌。因此一个自动化更新SSL证书和部署到CDN 对象存储等的统一管理平台迫在眉睫。这时候Certimate出现在我的视野中。
类似项目也有不少,如宝塔开发的ALLinSSL,Certd等。相较于前二者,Certimate的优秀之处在于它的广泛的平台支持。
Certimate是什么?
GitHub链接:https://github.com/certimate-go/certimate
文档链接:https://docs.certimate.me/
Certimate 是一款开源的、支持自动续订和部署的证书管理工具。它旨在解决在SSL证书有效期大幅缩短的背景下,用户手动管理和更新证书的痛点。通过统一的平台,用户可以自动化申请、续订多种来源的免费证书,并将其一键部署到各种云服务(如CDN、对象存储)和服务器上,极大地简化了HTTPS证书的生命周期管理。
Certimate的优秀之处:广泛的平台支持
相较于同类项目,Certimate最核心的优势在于其无与伦比的平台兼容性。它不仅支持从多个主流服务商(如Let's Encrypt, ZeroSSL)申请免费证书,更关键的是其强大的部署能力,可以将证书推送到众多国内外云厂商的多种产品上。
具体支持的平台和功能包括:
- 证书申请: 支持通过DNS验证(DNSPod、阿里云DNS、Cloudflare等)或HTTP验证方式,Let's Encrypt、ZeroSSL、Google Trust Services、Buypass AS等多个CA机构申请免费的单域名或通配符证书。
- 部署到云平台:
- CDN服务: 支持将证书一键部署到阿里云CDN、腾讯云CDN、华为云CDN、又拍云、七牛云等主流内容分发网络。
- 对象存储: 支持为腾讯云COS、阿里云OSS等对象存储的自定义域名更新证书。
- 负载均衡/网关: 支持腾讯云CLB、阿里云SLB、应用型负载均衡ALB等。
- 多环境部署: 用户可以配置一次证书申请,然后将其自动部署到绑定该域名的所有云产品上,无需在各个云平台控制台之间切换操作。
- 状态监控与通知: 提供证书到期监控和通过Webhook(如飞书、钉钉)发送通知的功能,确保用户能及时掌握证书状态,避免因遗忘续订导致服务中断。
通过这种广泛的集成,Certimate为拥抱多云战略或在不同平台上部署服务的开发者和运维人员提供了一个集中、高效、自动化的证书管理解决方案,完美应对了证书有效期缩短带来的挑战。
安装部署
docker compose快速开始:
mkdir -p ~/.certimate && \
cd ~/.certimate && \
curl -O https://raw.githubusercontent.com/certimate-go/certimate/refs/heads/main/docker/docker-compose.yml && \
docker compose up -d
上述命令会从 GitHub 仓库中下载 docker-compose.yml,你也可以根据我们提供的 docker-compose.yml 文件内容自行部署:
version: "3.0"
services:
certimate:
image: certimate/certimate:latest
container_name: certimate
ports:
- 8090:8090
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./data:/app/pb_data
restart: unless-stopped
你也可以通过docker或者是GitHub Release下载二进制文件并在系统创建服务进程使用。
获取云厂商平台授权
为了能够在签发证书时添加特定的DNS记录完成认证或者签发好证书进行同步,我们需要在授权管理中添加对应的Access Key和Secret Key。
以腾讯云为例,访问密钥可以在https://console.cloud.tencent.com/cam/capi 中创建
其他平台,Certimate中可以通过问号部分了解如何取得。
工作流
Certimate在对于工作流的编排中采用了可视化的编辑,让流程更加简单。
如下图是一个比较简易的工作流,每隔一周执行一次获取新证书,之后并行同步到ESA和EO平台中,若同步证书到平台或者签发证书失败,则会通过Telegram向我推送失败信息。
这里各位大佬可以根据自身的实际情况,通过if判断等编辑出合适流程