






















总结摘要
本文详细介绍开源工具 Certd 如何一站式解决跨平台 SSL 证书自动化申请、部署与续期难题。通过实际案例,展示了如何将 Let's Encrypt 证书同时自动部署到 1Panel、阿里云 CDN 和边缘安全加速等不同平台,并深入解析了 CNAME 代理校验功能如何突破域名注册商兼容性限制。文章还涵盖了 Docker 部署、授权配置、任务流水线创建及常见问题排查,为运维人员提供了一套完整的多端证书管理方案。
最近在管理我的多个网站时,遇到了一个非常头疼的问题:我有三个不同的1Panel服务器,还有一些部署在阿里云上的服务,包括CDN和边缘安全加速。虽然1Panel可以自动申请SSL证书并推送到网站,但云厂商的CDN和边缘安全加速服务需要手动上传和更新证书,每次证书快过期时都要手动更新,非常麻烦。
直到我发现了Certd这个开源工具,它完美解决了我在多平台SSL证书管理方面的所有痛点。今天就来分享一下我的使用体验。
我是在寻找自动化证书管理工具时发现Certd的。 官方文档地址 Certd是一个开源、免费、全自动的证书管理工具,支持自动申请证书并将其部署到各种平台。
在使用Certd之前,我尝试过多种解决方案:
而Certd的最大优势在于:
我有三个1Panel服务器,分别管理不同的网站。同时,这些网站还使用了阿里云的CDN和边缘安全加速服务。以前的做法是:
这个过程不仅繁琐,而且容易出错。特别是在证书快过期时,如果忘记手动更新云服务上的证书,就会导致网站访问异常。
Let’s Encrypt的证书只有90天有效期,需要定期续期。以前完全依赖人工监控,经常忘记续期时间,导致网站证书过期。
有些网站需要多个域名或泛域名证书,手动管理这些证书非常困难。
使用Certd后,整个流程变得自动化:
官方提供一个在线测试环境, 点击这里 使用流畅:注册 -> 创建证书流水线 -> 添加部署任务 -> 测试运行 参考文档: 快速开始
官方提示:demo的数据将不定期清理,生产使用请自行部署
包含敏感信息,务必自己本地部署进行生产使用
我选择了Docker部署方式,这是最简单的方式:
| |
首次访问 http://服务器IP:7001,系统会引导进行初始配置:
因为我使用阿里云的域名,所以我配置了阿里云DNS:

在我使用Certd的过程中,发现了一个非常强大的功能——CNAME代理校验方式。这个功能解决了我一个未曾预料到的问题:域名服务商兼容性。
在使用Certd之前,我一直使用某个国外的域名注册商管理我的域名。当我想使用Certd自动申请SSL证书时,发现Certd并不支持我的域名注册商。这意味着我无法使用DNS自动验证功能,只能通过其他方式(如HTTP验证)来申请证书,这在某些场景下会很不方便。
CNAME代理校验是Certd提供的一种特殊验证方式,它能够让你在域名注册商不被Certd直接支持的情况下,也能实现证书的自动申请和续期。
简单来说,这个功能的工作原理是这样的:
mydomain.com,但它是在Certd不支持的域名注册商那里注册的proxydomain.com,它是在Certd支持的注册商(如阿里云、腾讯云等)那里注册的proxydomain.com上自动创建TXT记录来完成验证mydomain.com上手动添加一条CNAME记录指向Certd提供的代理域名mydomain.com的所有权使用这个功能的步骤也很简单:
mydomain.com)_acme-challenge.mydomain.com -> xxxxxx.cname.proxy.commydomain.com的DNS设置中添加这条CNAME记录这个过程只需要为每个域名做一次,后续Certd会自动处理所有续期和更新操作。
这个功能对我非常有用,因为我有几个域名是在国外注册商那里注册的,原来使用acme.sh等工具时需要手动处理验证,非常麻烦。现在通过CNAME代理校验,我可以把所有域名都纳入到Certd的统一管理中,不再受限于域名注册商的兼容性问题。
在Certd中,证书申请和部署是通过"流水线"来管理的:
点击"创建证书流水线"
填写基本信息:
在"证书颁发机构"中选择Let’s Encrypt(支持通配符证书)
这是Certd最强大的功能之一,可以将证书部署到多个平台:
对于每个部署插件,我需要配置相应的参数:
Certd默认会在证书到期前35天自动续期,这个设置无需调整。

配置完成后,我手动运行了一次流水线,整个过程非常流畅:


整个过程只用了不到5分钟,比我手动操作快了几十倍。
Certd还支持邮件和Webhook通知,我配置了邮件通知,每次证书更新成功或失败都会收到邮件提醒,非常贴心。
在Certd的管理界面,我可以一目了然地看到所有证书的状态、到期时间等信息,再也不用担心证书过期的问题了。

工具开源功能已经足够强大了,开源精神也需要经济能力支持。
付费与免费版本可以看下图进行对比

控制台详细插件功能截图如下(带黄色小钻石的插件是付费功能):

商用支持虽然不用短时间就更改或续期一次,但是也需要关注证书到期时间,而且有一个平台可以批量管理部署自己的证书到其他服务器上未尝不是一个好的选择。
Certd就做到这一点,可以用于监控商用证书到期时间并发送提醒通知,避免大半夜证书到期导致站点无法访问。
当然也可以把商用证书通过流水线一键部署到其他服务器和云服务上,这样也不需要手动操作。
在配置阿里云CDN部署时,我最初使用的AccessKey权限不足,导致部署失败。解决方案是到阿里云RAM控制台为该AccessKey所属RAM用户分配CDN、SSL证书、云解析、边缘安全加速的权限。
CDN:AliyunCDNFullAccess
DNS:AliyunDNSFullAccess
SSL:AliyunYundunCertFullAccess
ESA:AliyunESAFullAccess
如果还有其他插件需求,比如OSS、ACK、K8S等,请自行添加
提示: AccessKeyID保密性很高,请勿将AccessKeyID和AccessKeySecret泄露给其他人,我这里是设置了白名单,只有白名单IP可以调用API,其他IP访问API都会被拒绝。如果IP不固定,不要去设置。不嫌麻烦的尽可能缩紧权限,避免权限给的过大导致风险。
刚开始时,DNS验证总是失败。后来发现是DNS记录生效时间较长,Certd已经等待了120秒,但有些DNS解析还是没有生效。检查API调用日志确认DNS记录是否生效,如果生效了,则调整Certd的DNS服务器校验地址,或者等待DNS记录生效。
对于多域名证书,需要注意域名验证的顺序和时间,Certd支持一次申请多个域名的证书,但需要确保所有域名都能通过DNS验证。
经过一段时间的使用,Certd确实解决了我在SSL证书管理方面的所有痛点:
如果你也在管理多个平台的SSL证书,特别是涉及到云厂商的CDN或加速服务,我强烈推荐你试试Certd。它不仅解决了证书管理的痛点,还大大提升了运维效率。自从使用了Certd,我再也不用担心证书过期的问题了,真正实现了"让你的网站证书永不过期"的目标。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。