上周有个朋友找我,说他客户的官网打不开了,浏览器一片红。

排查十分钟:证书过期三天。他不是不会配证书,手上二十多个站点,Nginx 上的、Docker 里的、还有几个挂在 CDN 后面。三个月前他确实收到过一封续期提醒邮件,当时正在忙别的,标记成未读,然后就没有然后了。

这种事我见得太多了。所以这篇不打算讲“HTTPS 有多重要”——那个道理 2018 年就讲完了。我想聊的是另一件事:证书管理正在从“技术问题”变成“排期问题”,而排期问题,靠人记是解决不了的。​

一、先看一张时间表,它比任何论证都有说服力

CA/Browser Forum 已经定了:

  • 2026 年 3 月 15 日起,新签发证书有效期上限 199 天
  • 2027 年 3 月 15 日起,进一步缩短到 100 天
  • 2029 年 3 月 15 日,全面缩短到 47 天

SSL证书有效期缩短计划表

很多人看到这条新闻的反应是“哦,更安全了”,然后划走。但你把这个数字换算成工作量看看:

47 天的有效期,意味着一张证书一年要续 7 到 8 次。你要是手上只有 1 个域名,一年多操作 7 次,还行。你要是有 20 个域名、分布在不同服务器、不同云、不同 CDN 上——一年就是一百多次“登录服务器 / 执行续期 / 重载服务 / 确认 CDN 那份也换了”。

以前证书一年一换,忘了是运气问题;以后两个月一换,忘了是必然问题。​

这不是危言耸听。这是已经写进政策时间表的事,你现在签的每一张新证书,有效期都已经只有 199 天了。

二、certbot 和 acme.sh 解决了什么,又没解决什么

先说句公道话:在“把证书签下来”这一步,开源工具做得非常好。acme.sh 我自己用了很多年,轻、快、不依赖 Python,没得挑。

但要诚实面对它覆盖的范围:它解决的是“在这台机器上签发证书”,然后就结束了。​

而真实的线上环境里,签发只是整条链路的第一环。你真正需要保证的是:

  • 有人知道它什么时候到期(工具会提醒,但提醒会淹没在两百封邮件里)
  • 证书被放到正确的位置(Nginx 一个路径,Docker 要挂 volume,K8s 要更新 Secret,CDN 要后台上传)
  • 服务被正确重载(reload 时机不对,连接会掉)
  • CDN 和负载均衡上的那一份也换了(这里是翻车重灾区:源站换了,CDN 忘了)
  • 万一失败,你得知道,而且线上不能挂

这里面没有一件是难的技术。但它们全都是“需要有人记得”的事。而在运维里,“需要有人记得”等价于“迟早会忘”。

所以我自己写了个东西,叫 SSLBot。目标很简单:让第二件事到第五件事,也不需要人记得。

三、三条设计原则,决定了它长什么样

1. Agent 主动外连,不开入站端口

服务器上装一个 Agent,它主动向控制台建立连接。你不需要在防火墙上开任何入站端口,也不需要把服务器密钥交给任何第三方。从攻击面角度看,这一点比什么都重要。

2. 部署前校验,失败自动回滚

证书部署失败最怕的不是失败本身,是“改了一半”。SSLBot 在写入配置前先做校验,配置不对直接不落盘;真出问题,自动回滚到部署前的状态。同时热重载载入新证书,部署过程不中断线上流量。

3. 最小权限

它只做三件事:证书续签、自动部署、状态同步。除此之外没有任何操作权限。权限给得越少,你能睡得越踏实。

四、和传统 ACME 客户端最大的区别:可视化

命令行方案有个隐性成本——它只存在于某个人的脑子里。

谁配的、配在哪、哪个域名走的 DNS-01、哪个走的 HTTP 验证、上次续期成功没有、CDN 那份到底同没同步。这些信息散落在 shell 历史、crontab、和某个已经离职同事的笔记里。交接的时候,全靠口头。

SSLBot 给的是控制台:所有域名的证书状态、到期时间、部署目标、最近一次执行结果,一屏可见、可查、可追溯。支持单域名、多域名、通配符;支持 DNS-01 和 HTTP 文件验证;你已有的付费证书也能导进来统一托管,不同来源在一个地方并存。

五、上手确实只要三步

  1. 服务器上把网站跑起来(Nginx / Apache / Caddy 都行)
  2. 一行命令装 Agent:curl -sSL sslbot.net/install | sh
  3. 回控制台建一个自动部署任务,选好目标环境

目标是 Nginx、Apache、Docker、Kubernetes,还是阿里云、腾讯云、AWS、Cloudflare、CDN、负载均衡,都在适配列表里。之后的事——到期前自动向 CA 续期、校验、部署到每一个目标、失败告警——它自己跑。

告警渠道给了四个:邮件、短信、微信、企业微信。续期或验证失败的第一时间就发,不是等过期了才通知你。

SSL证书情况一目了然

六、谁适合用,谁其实不需要

这句我得说清楚,不然就成了纯广告。

适合:手里站点不止一个的站长和独立开发者;没有专职证书管理员、但 HTTPS 不能断的中小团队;源站 + CDN + 负载均衡同时存在、同一个域名有好几份副本要维护的架构。

不太需要:只有一台服务器、一个域名,acme.sh 的 cron 已经稳定跑了两年、从没出过事的人。你的方案是work的,别为了用工具而用工具。

SSL证书申请、签发、部署、续签 全流程,可视化、简约化

七、关于钱

自动化部署服务本身免费。证书你有两个选择:用 Let's Encrypt 免费证书(到期前自动续、自动重部署,不用再手工敲 renew),或者在平台买商业证书。已有的证书也可以直接导入。

顺带提一句,现在有 11.11 的活动:注册登录就能领 290 元代金券,够买 10 张商业 SSL 证书,到 11 月 30 号截止。有商业证书需求的话这个时间点比较划算。


写了这么多,其实核心就一句话:

证书管理的理想状态,不是你更努力地记着它,而是它根本不需要你记着。​

网站永远在线这件事,本来就不该依赖某个人的记性。

Logo

更多推荐