内容提要
雷池是长亭科技开源的一款Web防火墙,社区版本已有完善的WAF功能。目前雷池对证书操作仅支持从UI导入或使用Let's Encrypt的HTTP-01验证方法,不方便使用DNS验证的短期证书用户。因此,作者写了个小脚本通过操作雷池API来实现证书的更新。脚本中模拟登录并调用API来更新证书。填好参数后运行即可完成证书更新。
延伸解读
为何不能直接替换证书文件
雷池基于 Tengine 实现网关,证书配置虽在 Tengine 中生效,但证书管理界面的有效期等信息以数据库为准。社区已有用户尝试手动更新容器内证书文件并重启容器,结果界面显示并未同步更新。这说明仅操作文件无法完成证书更新,必须通过雷池的 API 或界面操作来同步数据库状态。
脚本实现的关键步骤
由于官方未提供 API 文档和 API key 生成方式,脚本采用模拟登录流程:先获取 CSRF 令牌,再提交用户名密码登录获得 JWT,若开启多因素认证还需用 TOTP 密钥生成动态验证码进行二次验证。之后调用证书列表接口获取证书 ID,最后通过 PUT 请求上传新的证书和私钥内容完成更新。
适用场景与自动化潜力
该脚本主要面向使用 DNS 验证的短期证书用户,弥补了雷池当前仅支持 UI 导入和 Let's Encrypt HTTP-01 验证的不足。运行脚本后可在控制台看到更新成功提示。结合 Certbot hook 等工具,可以在证书续期后自动触发脚本,实现证书的自动更新,减少手动操作。
Q&A
雷池WAF的主要功能是什么?
雷池是长亭科技开源的Web防火墙,社区版本具备完善的WAF功能,满足个人项目的基本Web防护需求。
如何通过API更新雷池的证书?
可以编写脚本,通过模拟登录雷池API,获取CSRF令牌后调用更新证书的接口来实现证书更新。
雷池目前支持哪些证书操作方式?
雷池目前仅支持从UI导入证书或使用Let's Encrypt的HTTP-01验证方法,不支持DNS验证。
更新雷池证书时需要注意哪些事项?
直接操作证书文件无法更新证书,必须通过雷池的API进行更新,且官方未提供API文档和API key生成操作。
如何实现雷池证书的自动更新?
可以结合Certbot hook等工具,实现证书的自动更新,确保证书始终保持最新状态。
在更新证书的过程中需要进行哪些身份验证?
在更新证书时,需要进行多因素认证,确保安全性,登录后需验证动态验证码。