Let's Encrypt的certbot自动续期脚本在服务器上跑了两年没出过问题,crontab里挂着每周执行一次的指令,看起来万无一失。但服务器迁移过一次之后新环境里certbot的配置文件路径变了、DNS API的密钥换了、定时任务因为时区调整悄悄跳过一次执行窗口,这三个问题叠加在一起,证书在某个周四凌晨过期了而crontab里的续期脚本因为DNS验证失败已经连续报错四周没人注意到。自动续期没有失败,失败的是没有任何东西告诉你自动续期失败了。证书到期监控到底该做到什么程度:免费工具每24小时扫一次证书日期够不够?付费工具每5分钟检查还验证整个证书链值不值那个钱?一台服务器上只有两个域名和三台服务器上有80个域名+子域名+内部API证书,监控方案差了三倍价格也差了十倍
证书过期不是技术问题,是"没有人在看"的问题
TrustAsia统计,约81%的公司在过去两年中经历过SSL证书相关的中断,一次证书中断平均损失1500万美元。Microsoft Teams因为一枚身份验证证书过期瘫痪3小时影响2000万用户,Spotify两次证书事故分别宕机1小时和9小时,LinkedIn两年内两次证书中断,Equifax因为监控设备证书过期19个月未被发现间接导致1.47亿人数据泄露。这些公司不缺技术人才,缺的是一个在所有证书到期前自动发出告警、且告警能被活人看到的系统。自动续期解决"到期前自动操作",证书监控解决"操作失败了有人知道",两样东西缺一不可。
一、证书监控的三个层级,大部分人的认知停在第一层
| 监控层级 | 检查什么 | 能发现什么问题 | 发现不了什么(这些都是真实翻车原因) |
|---|
| 第一层:到期日期检查 | 读取证书的Not After字段,计算距离到期的剩余天数。大多数免费工具只做到这一层 | 证书快到期了发提醒。Let's Encrypt的90天短效证书、商用证书的1年期到期都能覆盖 | 证书链里的中间证书过期(Google Voice 2021年宕机4小时的原因)、证书被CA吊销、证书配置错误(域名不匹配、算法过时)、内部服务间通信证书过期(Spotify 2020年宕机原因) |
| 第二层:证书链+吊销验证 | 检查整个证书链(叶证书→中间证书→根证书)的有效性、检查CRL/OCSP吊销状态 | 中间证书快过期了、证书被CA意外吊销、证书链不完整导致部分浏览器信任链断裂 | 嵌入式软件/硬件设备的证书过期(爱立信SGSN-MME证书过期导致O2 3200万用户断网近24小时)、非标准端口的证书、SNI多证书环境中的某一个证书 |
| 第三层:证书发现+全资产覆盖 | 自动扫描和发现组织名下的所有证书,包括你不知道的域名、子域名、CDN域名、API网关、内部服务、IoT设备证书 | 某个被你遗忘的辅助域名证书快过期了(LinkedIn的lnkd.in短链接域名证书过期导致全平台短链失效)、新上线的子域名没有纳入监控 | 证书虽然没到期但因为配置错误导致的实际TLS握手失败(需要第四层——合成监控做真实TLS握手验证)。但如果前两层都做到位了,绝大多数翻车场景已经被覆盖了 |
二、八款证书监控工具,从完全免费到企业级
| 工具 | 价格 | 免费额度 | 检查频率 | 监控层级 | 核心能力和短板 |
|---|
| UptimeRobot | 免费 / Solo $8/月 | 50个监控器 | 24小时/次 | 第一层 | 免费额度最大方——50个监控器5分钟检测间隔(但SSL检查频率是24小时一次)。告警渠道:邮件+Slack+Webhook。提前30/14/7/0天发出到期提醒。适合中小团队多域名管理。最大短板:每24小时才检查一次证书状态,对短效证书(90天)来说两次检查之间可能有将近一天的盲区 |
| Site24x7 | 免费 / Pro $42/月 | 50个资源永久免费 | 可配置(分钟级) | 第二层 | 第二层验证能力最全的免费方案。检查证书吊销状态、SHA-1指纹防篡改、黑名单CA、SNI多证书环境。100+全球监控节点。除了HTTPS还支持SMTP/POP/IMAP/FTP等服务的证书监控。最适合需要深度验证但预算有限的中型团队。短板:Synthetic事务监控需额外购买 |
| TrackSSL | 免费 / $17/月起 | 2个域名 | 定期检查 | 第一层+变更 | 专注证书监控的垂直工具,不做通用监控。告警渠道最全:邮件+Slack+短信+Teams+Webhooks五通道。除到期外还监控证书变更(换发、算法变化等)。$17/月20个域名、$72/月200个域名。最适合需要多渠道告警的多域名管理场景。短板:免费版2个域名太少,不做证书链深度验证 |
| Keychest | 个人免费 / 企业按年定价 | 个人版免费 | 实时+定期 | 第二层+发现 | 独有功能:主动证书发现——自动扫描组织名下所有域名和子域名的证书,包括你不知道的。集成DigiCert/GoDaddy等多家CA实现按需续订和自动化部署。支持内部网络轻量代理监控内网证书。最适合大中型企业需要全资产证书可见性的场景。短板:企业版需要联系销售定价,个人免费版功能有限 |
| Better Stack | 免费 / $29/月起 | 10个监控器 | 30秒/次 | 第一层 | 检查频率最高(30秒),附带错误截图和秒级时间线。集成事件管理和状态页。$29/月解锁电话/SMS告警和值班调度。适合对响应速度有极致要求且需要全套可观测性(监控+日志+状态页)的团队。短板:免费版10个监控器偏少,不做证书链深度验证 |
| Pingdom | $10/月起 | 无免费计划 | 1分钟/次 | 第一层 | SSL监控作为HTTPS监控的附属功能(设置HTTPS检查时自动启用),不是独立功能。100+全球节点,双重检查防误报。$10/月含10个Uptime监控器+50条SMS告警。适合已经在用Pingdom做网站监控的团队顺带开启证书监控。短板:无免费计划、不做证书链验证、SSL功能深度不如Site24x7 |
| Dotcom-Monitor | 联系销售 | 免费试用 | 多地点定期 | 第二层 | 审计级报告能力最强,近30个全球节点。告警可路由到具体团队。除SSL外还覆盖网站和事务监控。最适合需要合规审计报告、多团队协作的大型企业。短板:定价不透明需联系销售,个人或小团队用起来太重 |
| Cert Spotter | 免费开源 | 完全免费 | 实时(CT日志) | 第三层 | 监控证书透明度日志,当CA为你的域名签发新证书时实时通知。不是到期监控工具,是证书发行监控工具。能发现恶意签发的伪造证书、未经授权的证书申请。最适合作为证书监控的补充层:到期监控管"不逾期",CT监控管"不被冒签"。短板:不管到期日期,需要和其他到期监控工具配合使用 |
三、比工具更重要的四件事:不是工具不行,是流程有漏洞
自动续期不等于不会过期,要监控的是"自动续期有没有成功"
Let's Encrypt的certbot自动续期看似完美,但DNS验证失败、定时任务静默退出、服务器迁移后配置路径变更,这三个场景中任何一个发生都可能导致自动续期失败且没有任何人知道。自动续期解决的是"不用人手动操作",证书监控解决的是"自动操作失败时有人被通知到"。两件事必须同时存在。具体做法:证书到期前30天和7天各发一次告警,如果30天告警触发时证书还没续,说明自动续期大概率出了问题,手动介入。

监控了主域名不代表监控了所有域名,子域名和辅助域名才是定时炸弹
LinkedIn的lnkd.in短链接域名证书过期导致全平台短链失效、Spotify的内部服务间通信证书过期导致音乐流中断,这些事故的共同特征:出问题的不是主域名证书,是没人盯的辅助域名。一个典型的中型企业可能有:主站域名、CDN域名、API子域名、管理后台子域名、短链接域名、邮件服务域名、内部微服务间通信证书。主域名通常有人在管,后面六个经常被遗忘。Keychest的证书发现功能和Cert Spotter的CT日志监控就是用来堵这个漏洞的。
告警发到了邮箱但没人看到,等于没有监控
监控工具发出告警邮件→发到了一个很少被查看的公共邮箱→30天提醒、14天提醒、7天提醒全部石沉大海→证书过期网站挂了。这不是监控工具的锅,是告警渠道设计有问题。正确做法:证书到期告警至少要配置两个不同渠道(比如邮件+钉钉/企业微信/Slack),且告警接收人至少是两个人(防止一个人休假或离职)。紧急告警(7天以内到期)要升级到电话或短信通知。Better Stack和TrackSSL在这方面做得最好——支持多渠道告警+值班调度。
只监控到期日期不验证证书链,中间证书过期时叶证书看着没问题
Google Voice在2021年因为中间证书过期导致全球中断4小时。叶证书的Not After字段显示还有半年才到期,但证书链里的中间证书已经过期了。大部分免费工具(UptimeRobot、Better Stack免费版、Pingdom)只检查叶证书的到期日期,不检查整个证书链。如果你用的商用证书是DigiCert/Sectigo/GlobalSign等CA签发的,中间证书通常有效期5-10年,到期时间容易被遗忘。Site24x7的免费版能做到第二层验证(检查吊销+黑名单CA),是免费方案里证书链验证最全的。

四、不同规模的证书监控方案,从个人博客到企业级
| 场景 | 推荐方案 | 年成本 | 为什么这样配 |
|---|
| 个人博客1-2个域名 | UptimeRobot免费版 | ¥0 | 50个免费监控器+SSL检查,对1-2个域名绰绰有余。24小时检查一次对个人博客够用(证书90天有效期,提前30天告警足够处理)。建议再加一个certbot renew定时任务+crontab邮件告警做双保险 |
| 中小公司5-20个域名 | Site24x7免费版(50资源)或TrackSSL $17/月 | ¥0 或 $204/年 | 如果只需要到期+吊销检查,Site24x7免费版50个资源足够。如果需要多渠道告警(短信+Teams+Slack),选TrackSSL $17/月20个域名。5-20个域名的规模开始出现"辅助域名被遗忘"的风险,建议配合Cert Spotter做CT日志监控发现遗漏的证书 |
| 中型企业20-100个域名 | TrackSSL $72/月或Keychest企业版 | $864/年 或 企业报价 | TrackSSL $72/月200个域名+多渠道告警+证书变更监控。Keychest的优势在于主动证书发现——能扫描出你不知道存在的证书。20个域名以上,"不知道有什么证书"是最大风险,Keychest的发现功能比纯监控更有价值 |
| 大型企业100+域名+内网 | Keychest企业版 + Dotcom-Monitor + Cert Spotter | 需联系销售 | Keychest负责全资产证书发现+内部网络代理监控内网证书+DNS/WHOIS监控。Dotcom-Monitor负责审计级报告和全球节点验证。Cert Spotter负责CT日志实时监控防止恶意签发。100+域名的企业证书到期一次可能损失数百万,三层监控的投入产出比极高 |
五、三个免费开源方案,自己搭比买SaaS还靠谱
Certd:一站式证书自动管理
开源免费,GitHub上可直接部署。核心能力:自动申请Let's Encrypt/ZeroSSL等免费证书→自动部署到服务器/CDN/负载均衡→到期前自动续期→续期失败告警通知。首创流水线模式,申请和部署过程可视化。集成了阿里云DNS/腾讯云DNS/Cloudflare等主流DNS API。适合:用免费证书+需要自动化管理的团队。部署一台Certd,证书从申请到部署到续期到告警全自动,人只负责接收告警。
AllinSSL:开源SSL全生命周期管理
同样开源免费,定位和Certd类似但更侧重监控维度。核心能力:一键自动化部署证书+实时监控过期时间+自动续期+续期失败多渠道通知。集成主流DNS提供商,支持Docker一键部署。和Certd的主要区别:AllinSSL的监控面板和告警能力更强,Certd的流水线编排和部署灵活性更强。两个项目可以互补使用。
自建脚本:15行Shell搞定基础监控
如果你只需要"证书快过期了发个邮件",不需要任何SaaS工具。核心命令:openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -enddate 获取到期日期,配合date命令计算剩余天数,小于30天发邮件。这个脚本放进crontab每天跑一次,配合certbot自动续期,构成零成本的证书生命周期管理。但注意:这个方案只能检查单个域名的叶证书,不检查证书链、不检查吊销状态、不发现遗忘的域名。
选型速查:一句话找到你的方案
- 1-2个域名,零预算:UptimeRobot免费版50个监控器,¥0,够用。加一个Shell脚本做双保险
- 5-20个域名,要深度验证:Site24x7免费版50个资源,证书链+吊销+黑名单CA验证全免费
- 20-100个域名,要多渠道告警:TrackSSL $17-72/月,邮件+Slack+短信+Teams+Webhooks五通道
- 企业级100+域名,不知道有多少证书:Keychest企业版,主动扫描发现所有证书,内部代理监控内网
- 纯开源方案:Certd + AllinSSL,免费自建,申请+部署+续期+监控全自动
- 已有Pingdom/Better Stack:直接在现有监控上加SSL检查,不需要单独买证书监控工具
- 防证书冒签(CT日志监控):Cert Spotter免费开源,有人给你的域名签发证书第一时间知道
证书到期监控这件事,工具本身的选型不复杂:个人博客用UptimeRobot免费版,中小公司用Site24x7免费版或TrackSSL,大企业上Keychest,想省钱的自己搭Certd或AllinSSL。真正复杂的是确保告警能被活人看到、所有域名(不只是主域名)都在监控范围内、自动续期失败时有人知道。Microsoft Teams 2000万用户断线3小时、Spotify两次宕机最长9小时、LinkedIn短链接全部失效、Equifax 1.47亿人数据泄露,这些事故的根因都不是"技术做不到",是"没有人知道证书要过期了"。监控工具的价值不在检测本身,在检测结果被人看到的那一刻。