零代码搭建SSL证书监控:用元宝Bot10分钟完成以前做不好的事
一、背景:这件事我折腾了好几个版本
我手上有几个个人站点,域名和SSL证书都是自己维护的。因为是个人站点所以都是用的免费证书,但是免费证书目前只有3个月的期限,所以要定期的续期证书。证书忘记续期这种事,我相信每个维护过个人站点的同学都遇到过——网站突然https报红,一看才发现证书过期了好几天。
为了解决这个问题,我之前做过好几个版本的监控:
-
版本一:Python脚本 / Golang 自写:逻辑不难,检测证书到期时间几十行代码就搞定,但问题卡在告警通知上。邮件免费,但实时性差,经常漏看;短信实时,但要钱,而且申请短信服务的审批流程极度繁琐,个人开发者很难快速搞定。折腾了很久,效果始终不理想。
-
版本二:小龙虾(Crawlab):试用了一段时间,告警只支持邮件,短信接口也需要自己对接调试,绕了一圈还是没解决微信通知的问题。而且小龙虾本身就需要单独找台机器部署,或者用云端版本,还要配置大模型——大模型调用也是要收费的,成本叠在一起,对个人开发者来说性价比并不高。
折腾了这几轮,核心矛盾只有一个:一直想用微信告警通知,但始终搞不定。微信的接口对个人开发者不友好,公众号需要认证,企业微信机器人又不是人人都有,测试号模板消息的配置流程也需要一定时间摸索。
这次我换了一个思路——用AI Bot来做这件事,结果10分钟就完成了,而且一行代码都没写。
二、工具介绍:元宝Bot
这次用到的工具是腾讯的元宝Bot。
简单说,它是一个能访问工具和执行任务的AI助手,核心能力是:
- 理解自然语言需求,自动生成并执行代码
- 内置「Skill」(技能)扩展机制,可以调用各种工具
- 支持定时任务(Cron),配置后自动周期性执行
- 可以通过企业微信/微信发送通知
我之所以选它,有两个核心原因:
-
模型不用自己配,直接免费用。这和小龙虾最大的区别在于——小龙虾是一个执行框架,你还得自己去接大模型、付大模型的费用;而元宝Bot本身就内置了大模型能力,申请开通之后直接用,不需要额外配置,也不额外收费。
-
可以直接发微信通知。这是我之前所有方案都没解决的痛点,元宝的通知链路天然打通了微信,配置起来也比想象中简单。
三、全程对话实录:10分钟完成监控
1. 告诉Bot我要做什么
我直接在对话框里说:
我要对一个指定列表的域名的ssl证书进行监控,请创建一个skill来支持这个事情,列出每个域名的证书到期时间,到期时间小于10天的请单独列出来给我。
Bot理解后,自动生成了一个Python脚本,核心逻辑是通过TLS握手获取证书信息,计算剩余天数:
import ssl, socket
from datetime import datetime
def check_cert(domain: str) -> dict:
ctx = ssl.create_default_context()
with ctx.wrap_socket(socket.socket(), server_hostname=domain) as s:
s.connect((domain, 443))
cert = s.getpeercert()
expire_str = cert['notAfter'] # e.g. 'Jun 15 12:00:00 2025 GMT'
expire_dt = datetime.strptime(expire_str, '%b %d %H:%M:%S %Y %Z')
days_left = (expire_dt - datetime.utcnow()).days
return {
"domain": domain,
"expire": expire_dt.strftime('%Y-%m-%d'),
"days_left": days_left,
"warning": days_left <= 10
}脚本会把所有域名的证书状态汇总输出,≤10天的单独高亮标出。
2. 配置域名列表和定时任务
我给了Bot要监控的6个域名,并说明每天9:30检测一次:
https://www.helight.info
https://www.helight.cn
https://www.kerneltravel.netBot自动创建了一个Cron任务,每天 9:30 Asia/Shanghai 执行检测。这步我完全没有写任何配置文件,纯对话完成。
3. 配置微信通知
这是以前最麻烦的一步,这次出乎意料的顺畅。
我问Bot怎么配置微信通知,它提供了几种方案,我选了微信测试号(免费,个人就够用):
① 申请测试号
访问 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo,扫码登录即可获得 AppID 和 AppSecret,整个过程不超过2分钟。
② 配置模板消息
在测试号管理页面添加一个消息模板,内容大概是:
证书到期提醒
域名:{{keyword1.DATA}}
到期时间:{{keyword2.DATA}}
剩余天数:{{keyword3.DATA}}③ 把信息告诉Bot
我直接把 AppID、AppSecret、模板ID、自己的 OpenID 告诉了Bot(注意:这些信息属于个人配置,不要公开分享),Bot自动把微信通知逻辑写进了检测脚本,并更新了Cron任务参数。
整个配置过程就是纯聊天,Bot帮我完成了所有代码修改。
4. 验证效果
配置完成后,Bot主动发起了一次测试检测,我的微信立刻收到了一条模板消息——域名名称、证书到期日期、剩余天数,格式清晰,一目了然。
Bot最后给了一个状态汇总:
当前监控的几个域名证书状态:
- www.helight.info 到期:2025-07-20 剩余:69天 ✅
- www.helight.cn 到期:2025-06-30 剩余:49天 ✅
- www.kerneltravel.net 到期:2025-06-05 剩余:24天 ✅
⚠️ 无即将过期证书(≤10天)四、这次体验的几点感受
最大的惊喜是微信通知。以前我用各种监控工具,微信通知要么不支持、要么配置极度繁琐,这次通过测试号模板消息,整个配置过程就是聊天,Bot帮我写好了所有调用代码。
一行代码没写。从提需求到收到微信测试通知,只是在对话框里描述需求、回答Bot的问题(比如测试号信息),所有代码都是Bot生成的。
定时任务也是对话配置的。“每天早上9点半检测一次”——就这一句话,Bot帮我创建好了Cron任务,配好了通知投递渠道,我连crontab文件都没碰。
当然也有一点小插曲:Bot第一次问我模板ID时,我填了个数字"1",它发现格式不对,主动提示我去确认真实的模板ID。这个细节挺好的,没有默默失败,而是主动说明问题。
五、总结
这件事让我重新思考了"做一个工具"的边界。
过去我做监控,默认思路是:找方案 → 写代码 → 调试 → 配环境 → 上线维护。每一步都有成本,所以个人项目往往凑合就过去了,或者花了大量时间搞出一个"差不多能用"的版本。
这次完全不一样。我只需要描述清楚我要什么,剩下的Bot来做。关键是,它做的东西是真实可用的——代码是真实运行的Python脚本,Cron是系统级定时任务,微信通知是真实触达我手机的消息。
我之前折腾了好几个版本SSL监控都没满意的,这次10分钟搞定,而且通知链路是我最想要的微信。
AI Bot的价值不在于"它能写代码",而在于它把「描述需求」和「交付可用工具」之间的距离,从小时/天级别压缩到了分钟级别。对于个人开发者来说,这个变化是实质性的。