跳到主要内容
版本:V2.2.0

证书更新方式

clmBot 支持两种证书更新方式,可以按服务器网络环境分别选择:

更新方式工作模式端口要求适用场景
云端推送管理后台发起推送,clmBot 服务端接收并更新需开放 8862/tcp 入站端口网络策略允许、希望更新即时生效
定时拉取clmBot 定时检查云端是否有新证书并自动更新无需开放入站端口无法开放入站端口的服务器(推荐默认方式)

两种方式互不冲突,同一批服务器中可以部分使用推送、部分使用定时拉取。

方式一:云端推送

在服务器上启动 clmBot 服务端

./clm-bot-linux-amd64 server -a="0.0.0.0:8862"

-a 指定监听地址和端口,默认为 0.0.0.0:8862。启动后 clmBot 将作为服务端常驻运行,等待云端推送。

注意
  • 需要在服务器防火墙和云安全组中开放 8862/tcp 入站端口。
  • clmBot 服务端对云端推送连接启用双向 TLS 认证,仅接受已完成接入激活的节点推送证书。

如不希望开放入站端口,请使用方式二:定时拉取

信息

clmBot 服务端需要保持运行才能接收推送。生产环境建议将其注册为系统服务并设置开机自启,参见 服务化部署与升级

在管理后台推送证书

登录管理后台,进入安装点列表,找到目标安装点并点击 推送证书,确认后系统将最新的证书推送到服务器并自动完成更新。

方式二:定时拉取

定时拉取模式无需开放入站端口,由 clmBot 定时执行更新检查,是推荐的默认方式。

Linux:配置 crontab

将 clmBot 更新命令加入 crontab:

crontab -e

添加一行(每天凌晨 3 点执行证书更新检查):

0 3 * * * cd /opt/clm-bot && ./clm-bot-linux-amd64 update-certificate >> update.log 2>&1
注意
  • 命令中必须先 cd 到 clmBot 安装目录再执行,因为 clmBot 默认从当前目录读取 config.yaml
  • 也可以不切换目录,通过 -c 参数指定配置文件路径:./clm-bot-linux-amd64 -c /opt/clm-bot/config.yaml update-certificate
  • 请将路径替换为实际安装目录。

执行输出会追加到 update.log,同时 clmBot 会在配置文件所在目录的 logs/clm-bot.log 中记录运行日志。

Windows:配置计划任务

在 Windows 服务器上创建计划任务,定时执行:

cd /d C:\clm-bot && clm-bot-windows-amd64.exe update-certificate >> update.log 2>&1

创建完成后,可以右击任务选择运行进行验证,然后在安装目录下查看日志确认执行结果。

证书自动重签与更新

clmBot 更新的证书来自云端的自动重签。登录管理后台,进入 SSL 证书详情页,在自动重签设置中选择或输入重签周期(如 30 天)并保存。

设置后的整体效果:

  1. 证书到期前,云端按重签周期自动完成重签,生成新证书。
  2. clmBot 按配置的方式(推送或定时拉取)获取到新证书。
  3. clmBot 对本地证书执行更新:
  • 本地证书与云端最新证书一致时,跳过更新。
  • 不一致时,自动备份本地证书文件(生成带时间戳的 .bak 备份),依次执行 before_script、写入新证书、执行 after_script 完成服务重载。
提示

如需在不更新证书的情况下强制执行一次 after_script(例如调试重载脚本),可以使用 --force-after 参数。