Certbot 证书自动续期可视化面板
证书到期忘了续,网站直接挂 90 天有效期一到,浏览器全屏红色警告。 这个面板把 certbot 的一整套命令行流程做成页面操作:申请走三步向导、续期可以先演练、 多台服务器批量同步、到期提前告警、每一步都有日志。不用再登服务器敲命令, 也不用记住 certbot certonly --webroot 那一长串参数。
它到底解决了什么
到期忘了续
Let's Encrypt 证书只有 90 天。忘了就是全站 HTTPS 报错,用户看到「您的连接不是私密连接」,转化率直接归零。
命令记不住
webroot 路径、deploy-hook、renew 参数……一年就用那么一两次,每次都要翻文档,敲错一个参数就得重来。
多台机器查不过来
手上有十几台服务器,哪台证书快到期?只能一台台登上去 openssl x509 -enddate 看,漏一台就是事故。
核心能力
三步向导申请证书
选服务器 → 填证书名/域名/邮箱 → 预检 → 安装。不用查文档,跟着页面走完就签好了。
申请前先预检 8 项
操作系统与包管理器、nginx 在不在、certbot 在不在、域名解析是否指向本机、80 端口通不通、443 占用情况……有红灯就先报出来,不让你白跑一趟。
缺环境自动装
识别 apt / yum / dnf 自动安装 nginx 与 certbot。装完还会再验一遍命令是否可用——CentOS 7 已 EOL、yum 装不到 certbot 的情况会明确拦住并给出提示。
刻意绕开 nginx 插件
不用 certbot 的 nginx 插件:它在各发行版包名不一,还会改写你已有的配置。这里统一 webroot 模式 + 单独写一份 conf.d 配置,你原来的配置一行不动。
nginx -t 不过就停
签发前先校验配置,不通过直接中止,不会走到 certbot 那一步——省下一次失败的签发记录,也避免 Let's Encrypt 的速率限制。
续期可以先演练
点「演练」走 dry-run,完整跑一遍续期流程但不真签发、不消耗额度。确认没问题再点「续期」。
续期后动作自定义
默认 deploy-hook 是 systemctl reload nginx,也可以换成你自己的命令(重载网关、通知 Webhook、重启容器),填进去就行。
定时自动续期
后台任务自动扫描临近到期的证书并续期,续期结果写进日志。不用再往 crontab 里塞一行自己都看不懂的表达式。
签发后探测是否真生效
不是「命令返回 0 就完事」——会真的去连域名看证书链对不对、生效的是不是这张新证书。可单台探测,也可批量。
到期告警
按剩余天数分级评估告警,可手动触发「评估告警」立刻看当前有没有需要处理的证书。
多服务器纳管
单台同步、一键同步全部。已有 certbot 证书的机器可以「加入纳管」,存量证书也能纳入台账统一管理。
每一步都有日志
每次续期记录触发方式(手动/自动/演练)、执行结果、时间与完整输出。出了事能回溯,不用猜是谁什么时候跑的。
权限分级
查看、同步、续期、申请四类权限分开。实习生能看台账,只有运维能点续期和申请。
申请一张证书的完整流程
页面上是三步向导(填资料 → 预检 → 安装),背后跑的是下面这条链路,每一步的输出都实时回显,卡在哪一步一眼能看到。
- 1
填资料
选服务器、填证书名与域名(可多个)、留一个收告警的邮箱。
- 2
环境预检
8 项检查跑一遍,有红灯就明确告诉你是哪一项、怎么补。
- 3
安装环境
缺 nginx / certbot 就按发行版自动装,装完再校验一遍。
- 4
准备 webroot 与配置
建 /var/www/certbot,写一份独立的 conf.d/<证书名>.conf,不动你原有配置。
- 5
nginx -t 校验
配置不通过立即中止,不消耗签发额度。
- 6
签发证书
certbot certonly --webroot,带 --deploy-hook 保证签发后自动 reload。
- 7
探测生效
真连域名验证证书链,确认新证书已上线。
- 8
纳入自动续期
进台账、挂定时任务、到期前自动续期并告警。
和手工敲命令的区别
| 环节 | 手工操作 | 可视化面板 |
|---|---|---|
| 申请证书 | 手敲 certbot certonly 一长串参数,敲错重来 | 三步向导,页面填完点一下 |
| 失败成本 | 错了才知道,还可能吃掉签发额度 | 申请前预检 + nginx 校验双拦截 |
| 续期验证 | 只能靠 certbot renew 的返回码 | 支持 dry-run 演练,还能探测是否真生效 |
| 多看几台机器 | 逐台 SSH 上去 openssl 看日期 | 一键同步全部,台账集中看剩余天数 |
| 到期提醒 | 靠邮件或自己记日历 | 按剩余天数分级告警,可手动立刻评估 |
| 出事回溯 | 翻 shell history,谁跑的不知道 | 续期日志记触发方式、结果、完整输出 |
| 权限 | 有服务器账号就能操作 | 查看 / 同步 / 续期 / 申请 四级分开 |
几个常见问题
会改坏我现有的 nginx 配置吗?
不会。面板刻意绕开 certbot 的 nginx 插件,走 webroot 模式,只新增一份 /etc/nginx/conf.d/<证书名>.conf,你原来的配置文件一个字都不动。
申请失败会不会浪费 Let's Encrypt 的签发额度?
基本不会。签发前有两道拦截:预检(解析、端口、环境)和 nginx -t 配置校验。真要试也建议先点「演练」走 dry-run,dry-run 走的是测试环境,不消耗额度。
CentOS 7 这类老系统能用吗?
会明确拦住。CentOS 7 已 EOL、EPEL 归档后 yum 里装不到 certbot,面板在装完环境后会再校验一次命令是否存在,装不到就停下来告诉你原因,不会一路跑到报错。
一台机器上已经有用 certbot 申请的证书,能管吗?
能。申请向导里有「加入纳管」,把存量证书纳入台账,之后一样享受自动续期、探测和告警。
续期完 nginx 会自动重载吗?
默认会。deploy-hook 默认是 systemctl reload nginx,也可以换成你自己的命令——比如重载网关、重启容器或发通知。
三步装到自己服务器
这个面板是「运维服务管理系统」的一个模块,整套装在你自己的机器上,服务器密码等凭据全部加密存储,数据不出内网。
git clone https://gitee.com/taokaji/system-tools.git
cd system-tools
chmod +x install.sh && ./install.sh- 脚本自动检查 Docker 与 Compose,三个密钥随机生成(数据库口令 / 凭据加密密钥 / 授权签发密钥),端口被占自动顺延
- 首次构建要拉 Maven 与 npm 依赖,5~15 分钟;装完直接打印访问地址,初始账号
admin / admin123 - 7 天试用,功能全开;到期后仍可登录,激活即可恢复,不用重装