多站点批量绑定SSL证书宝塔一键脚本
一、为什么需要批量绑定SSL证书
如果你在宝塔面板上管理了十几个甚至几十个网站,逐个进入站点设置、申请Let's Encrypt证书、等待部署,整个过程非常费时。
尤其当证书需要续签时,重复劳动更多。多站点批量绑定SSL证书宝塔一键脚本可以将这些操作合并为一条命令,自动遍历所有站点、申请证书并绑定,大幅提升效率。
二、准备工作
在运行脚本前,请确认以下几点:
- 宝塔面板版本:7.4以上(兼容性较好)。
- 已添加站点:所有需要绑定证书的域名必须已在宝塔面板中添加,并且域名DNS解析指向当前服务器IP。
- 命令行环境:通过SSH登录服务器,使用root权限操作。
- Python环境:宝塔自带Python,无需额外安装。
- 获取脚本:从可信的GitHub仓库或运维社区下载,例如使用以下命令获取(请用实际地址替换):
wget -O batch_ssl.sh https://example.com/bt_batch_ssl.sh
如果是首次使用,也可以通过宝塔自带的“计划任务”功能手动添加自定义脚本,但更推荐直接使用系统内的PythonAPI。
三、运行一键脚本进行批量绑定
以常用的BT一键批量SSL脚本为例,操作流程如下:
- 赋予执行权限
chmod +x batch_ssl.sh
- 修改脚本配置(部分脚本需要)
打开脚本文件,找到以下变量并根据需要修改:
EMAIL:用于Let's Encrypt账户的邮箱,建议填写真实邮箱以便接收证书到期提醒。DOMAINS:如果需要指定域名列表,可以用空格分隔;留空则自动选择所有已添加的站点。FORCE_RENEW:是否强制续签已存在的证书,建议首次使用时设为false。
- 运行脚本
bash batch_ssl.sh
脚本会依次检查每个站点的根目录、生成证书请求、调用宝塔API绑定证书。
运行过程中会输出日志,建议稍等几分钟。
- 检查输出结果
脚本结束后,注意查看屏幕上的成功/失败信息。
常见成功提示如:
[OK] example.com SSL certificate bound successfully.
如果某个站点失败,会显示原因(例如域名未解析、目录不存在等)。
四、避坑指南——常见问题与解决方法
- 证书申请失败:Failed to issue certificate
- 原因:域名DNS未解析到本机,或80端口/443端口未开放。
- 解决:先确认
ping yourdomain.com返回本机IP,并确保宝塔面板中已放行80和443端口。 - 脚本提示“站点不存在”
- 原因:站点名称或ID与宝塔数据库不匹配。建议运行
ls /www/wwwroot/检查站点目录名称,与宝塔后台站点名保持一致。 - 批量绑定后部分站点仍显示“未部署”
- 原因:证书已生成但未正确绑定站点。可以手动在宝塔后台→网站→设置→SSL中检查是否已选择证书,若未绑定可尝试重启Nginx或Apache。
- Let's Encrypt速率限制
- 注意:同一域名每周最多申请50张证书。如果站点太多,建议分批执行,或者改用泛域名证书。
五、验证绑定结果
执行完脚本后,请从以下三个方面确认证书是否成功:
- 宝塔面板后台
进入网站列表,逐个点开站点→SSL,如果显示“已部署Let's Encrypt证书”则成功。
- 浏览器访问
使用https://yourdomain.com打开站点,查看地址栏左侧是否有小锁标志。
点击锁图标可查看证书详情。
- 在线检测工具
使用SSL Labs或SSLChecker等工具检查证书链是否完整,以及是否支持TLS 1.2/1.3。
如果发现某站点未生效,先检查上述避坑点,或手动在该站点重新申请一次证书。
一次批量绑定后,后续的续签工作也可以直接复用该脚本(建议设置每月自动执行一次的计划任务)。
六、总结
通过多站点批量绑定SSL证书宝塔一键脚本,你可以将原本需要逐个点击、等待的繁琐过程压缩到几分钟内完成。
只要提前准备好域名解析和面板环境,按照本文步骤操作,零基础用户也能顺利为所有站点开通HTTPS。
如果遇到异常,优先回看避坑部分,大部分问题都能自行解决。