运行模式
定时拉取
使用 Linux crontab 或 Windows 计划任务定期执行 update-certificate,实现无入站端口的证书自动更新。
定时拉取是 clmbot 的默认推荐模式:clmbot 由系统计划任务定期唤起,主动向上游检查是否有新证书;有则抓取、替换并重载服务。整个过程不需要开放任何入站端口。
工作流程:
- 上游通过 CaaS 自动重签或由自有服务在证书到期前完成重签;
- 计划任务按周期执行
update-certificate; - clmbot 发现新证书后自动抓取到服务器并替换旧证书(旧证书备份为
.bak); - 执行
after_script重载服务,使新证书生效。
开始前请确认已完成配置并手动执行过一次成功的 update-certificate(见自动更新与服务重载)。
Linux / macOS:crontab
以“每天凌晨三点执行证书更新检测”为例,编辑 clmbot 运行账号的 crontab:
crontab -e
添加一行(目录与二进制名以你的实际部署为准):
0 3 * * * cd /opt/clm-bot-demo && ./clm-bot-linux-amd64 update-certificate >> update.log
要点:
- 使用专用
clmbot账号的 crontab,而不是 root 的,见最小权限; - 先
cd到 clmbot 运行目录,保证config.yaml与日志路径正确; - 输出追加到
update.log,便于定期检查更新是否正常。
Windows:任务计划程序
在任务计划程序(Task Scheduler)中配置定时任务执行 update-certificate 命令:
- 打开“任务计划程序”,创建基本任务;
- 触发器选择每天,设定执行时间(如凌晨三点);
- 操作选择“启动程序”,程序为 clmbot 可执行文件的完整路径,参数为
update-certificate,起始于(工作目录)设为 clmbot 所在目录; - 运行账号使用专用服务账号,勾选“不管用户是否登录都要运行”;
- 保存后右键“运行”验证一次,检查运行目录下的日志确认执行成功。
Windows 计划任务中的程序路径必须指向解压后的实际可执行文件,不能直接照抄示例名称。
更新周期建议
- 更新延迟取决于计划任务周期:每天一次是常见选择;
- 以 CaaS 为上游时,后台默认在证书到期前 15 天(可自定义)自动重签,每日检测一次留有充足缓冲;
- 执行后请定期检查
update.log,确认更新、备份和服务重载是否正常。
