宝塔自动化脚本批量申请免费SSL证书,新手也能直接操作
核心答案:
宝塔面板内置的 acme.sh 脚本或 Let's Encrypt 插件支持自动化批量申请免费SSL证书,
只需在 SSH 执行一条命令或在面板后台配置任务计划,
即可为多个域名或子域名统一续期,
无需手动操作。
适用场景:谁需要批量申请 SSL?
如果你在服务器上运行着十几个甚至上百个网站,每个站点都手动申请一次证书,不仅效率低、还容易漏掉续期。
使用宝塔的自动化脚本,可以一次性申请多个域名(包括泛域名),配合任务计划实现自动续期,降低因证书过期导致的安全警告。
前置准备:运行环境检查
- 确保宝塔面板已安装并正常运行(推荐 7.4 以上版本)。
- 域名已解析到当前服务器 IP,且已添加网站站点。
- 登录宝塔后台,进入“软件商店”,确认“Nginx”或“Apache”已开启 SSL 支持。
- 开放 80 和 443 端口(Let's Encrypt 验证需 80 端口)。
如果你用的是泽御云(zeyuyun.com)的云服务器,默认安全组已放行这些端口,无需额外配置。
操作方法一:面板自带批量申请(推荐新手)
- 进入宝塔面板 → “网站” → 勾选需要申请证书的站点(可多选)。
- 点击顶部“SSL” → “Let's Encrypt” → 在“域名”中选择对应的域名(每行一个)。
- 点击“申请”按钮,面板会自动调起 acme.sh 脚本,逐个验证并下发证书。
- 申请成功后,面板会自动启用 SSL 并保存证书。
批量操作要点: 如果勾选了多个站点,面板会遍历每个站点的域名列表合并去重后一次性提交。
建议每次批量域名不超过 50 个,否则可能触发 Let's Encrypt 速率限制(每周 50 个证书/账户)。
操作方法二:SSH 命令行批量执行(适合进阶)
宝塔面板默认安装了 acme.sh,可直接在终端调用。
以下命令可在 SSH 中批量申请多个域名:
# 登录服务器后执行(替换邮箱地址)
curl https://get.acme.sh | sh -s email=your@email.com
# 申请证书(可写多个 -d 参数)
~/.acme.sh/acme.sh --issue -d example.com -d www.example.com -d api.example.com --webroot /www/wwwroot/example.com
--webroot需指向站点根目录,也可以使用-w /www/wwwroot通配路径。- 申请成功后,证书默认保存到
~/.acme.sh/下。
如需批量给多个域名根目录不同的站点申请,建议写一个简单的 bash 循环脚本。
避坑指南:常见错误与解决
1. 速率限制: Let's Encrypt 每周每个账户最多申请 50 个证书。如果报错“too many certificates already issued”,请暂停当天操作,或使用其他 CA(如 ZeroSSL)。
2. 域名验证失败: 确保域名解析正确,且服务器 80 端口可被外部访问。如果使用 CDN 代理,需临时关闭全站加速。
3. 证书文件路径错误: 自动申请后若网站 SSL 未生效,检查面板站点 SSL 设置中的证书文件是否已正确绑定。
4. 续期任务未执行: 宝塔任务计划默认每天检测一次证书有效期。可手动运行命令 ~/.acme.sh/acme.sh --cron 测试。
效果验证:确保证书已生效
申请完成后,通过以下方式验证:
- 浏览器访问
https://你的域名,地址栏显示安全锁。 - 使用在线检测工具(如 SSL Labs)检查证书链完整性。
- 在宝塔面板“网站→SSL”中查看证书到期时间,确认与 Let's Encrypt 发放记录一致。
- 执行命令:
echo | openssl s_client -connect 你的域名:443 -servername 你的域名 2>/dev/null | openssl x509 -noout -dates查看证书有效期。
常见问题解答
1. 宝塔面板批量申请 SSL 证书需要手动续期吗?
不需要。面板默认每天自动执行 acme.sh 续期脚本,只要域名解析不变且服务器可达,证书会在到期前自动更新。2. 一个证书可以包含多个主域名吗?
可以。Let's Encrypt 支持 SAN(Subject Alternative Name)证书,将多个域名放在同一个证书的 -d 参数中即可。3. 宝塔脚本批量申请时提示“Order contains no identifiers”怎么办?
通常是因为输入的域名列表为空或格式有误(不可带空格、协议头)。请检查每个域名是否单独一行,且无多余字符。4. 免费证书和付费证书有什么区别?
免费 Let's Encrypt 证书有效期为 90 天,自动续期后无额外成本;付费证书有效期通常更长(1年),但宝塔自动化脚本已能无缝管理免费证书的续期,对普通站点而言体验差异不大。