去年接手一个客户转让来的站,交接那天恰好是证书过期日,前一家建站公司用的免费Let's Encrypt,三个月一续,没人续,交接当天绿锁就没了。客户问我:不是说免费吗,怎么还出这种事?我说免费证书从来没坑过人,坑人的是“装完就不管”的错觉——SSL证书安装只是第一步,续期才是长期饭。
九十天为什么这么短
Let's Encrypt把有效期定在九十天,官方的解释是故意逼你自动化。人工续三个月一次,一年四次,总有一次会忘;脚本续的话,装好之后基本无感。但自动化也有坑:面板生成的定时任务,一旦你改过面板登录密码或者权限,续期可能悄悄失败,网站表面一切正常,到期当天突然全线报警。
有人问过能不能一口气买五年,免费证书没有这个选项,有效期就是九十天,想长有效期只能选付费证书。也正因为短,它逼着站点把自动化做扎实——从长期看这反而是好事,那些靠自动化续期跑了几年的站点,从来没在这个环节掉过链子。
我们踩过的三个坑
- 续期脚本跑在旧版本的acme客户端上,接口升级后静默失败,日志里只有一个不起眼的报错
- 通配符证书要做DNS验证,客户换了DNS服务商,TXT记录加不进去,续期卡了半个月
- 到期提醒邮件发到前任运维邮箱,离职半年的人当然不会转发
其中第二个坑最冤:客户自己换DNS服务商,本来是正常的运维操作,但没人知道通配符证书续期依赖那台DNS上的TXT记录,一换就是静默断粮。这类跨系统的联动关系,平时没人写进文档,出事的时候才知道有多隐蔽。
这三件事没有一件是技术难题,全是“没人盯”。所以现在我们给客户做SSL证书安装时,一律加一层监控:续期脚本跑完自动探测站点证书有效期,低于二十天就发提醒到多人邮箱。
免费还是付费,看维护能力
有技术能力盯脚本的,免费证书是好选择,一年省下几百到一千多;没人盯的,买付费证书附带的到期提醒和人工支持,钱花得不冤。算总账别只看证书标价,把“绿锁消失一上午的损失”折进去,答案往往就清晰了。另外提醒一句,免费证书签发的速率限制也要留意,一个主域下挂太多子站,一周内能签发的证书数量有上限,批量上新站点前要规划好。
两条建议
用免费证书的话,务必把续期成功率做成自动监控,别靠人肉记得;团队里没人管这类杂事,找比格网络做托管维护,续期、备份、监控一起打包,比自建一套流程省事得多。