外贸站宝塔面板免费SSL证书自动续期脚本设置全攻略

为什么外贸站需要SSL自动续期?

外贸站点依赖稳定HTTPS连接,Let's Encrypt免费证书有效期仅90天。
若忘记续期,访客会看到安全警告,影响信任和SEO排名。
手动续期既繁琐又易漏,配置一个自动续期脚本是省心稳定的做法。

前置准备:确认环境与权限

在动手之前,先检查以下条件是否满足:

  • 宝塔面板已安装并登录(建议使用最新稳定版)。
  • 网站已成功部署Let's Encrypt免费证书(在网站设置 -> SSL中可查看)。
  • 服务器能正常访问外网,且域名解析正确。
  • 了解SSH登录方式(用于测试脚本,也可在面板文件管理操作)。

分步配置:从脚本到定时任务

1. 编写自动续期脚本

登录宝塔面板,进入左侧菜单「文件」,找到 /root 目录(或其他自定义位置)。
新建一个名为 ssl_renew.sh 的文件,内容如下:

#!/bin/bash
# 强制续期所有Let's Encrypt证书(不限制次数)
/usr/bin/certbot renew --force-renewal --noninteractive
# 如果证书更新成功,重启Nginx使新证书生效
if [ $? -eq 0 ]; then
    /etc/init.d/nginx reload
fi
如果宝塔使用Apache,将最后一行改为 /etc/init.d/httpd reload

保存后,右键设置文件权限为 0755(或通过命令 chmod 755 /root/ssl_renew.sh 赋予执行权限)。

2. 添加计划任务

在宝塔面板左侧点击「计划任务」,然后点击「添加任务」。
按以下填写:

  • 任务类型:Shell脚本
  • 任务名称:SSL证书自动续期(可自定义)
  • 执行周期:选择 每月,并设定具体日期(例如每月1号凌晨3点),或者选择 N分钟(建议设为 1440分钟,即每天执行一次,因为certbot自带续期逻辑,不会重复申请)。更推荐每天执行一次:在「执行周期」中选择 N分钟,输入 1440
  • 执行脚本内容:bash /root/ssl_renew.sh
  • 点击「添加任务」

3. 测试脚本能否正常执行

在添加任务后,可临时点击该任务行的「执行」按钮,观察日志。
如果显示 Congratulations, all renewals succeeded 类似信息,则说明脚本有效。

避坑指南:这些细节决定成败

  • 保证计划任务按时触发:检查服务器时间是否准确(可通过SSH执行 date 确认),时区建议设置为 Asia/Shanghai(在面板设置里调整)。
  • 域名解析必须稳定:证书续期需要域名指向当前服务器IP,如果域名暂停解析或切换到其他IP,续期会失败。
  • 端口80和443必须开放:Let's Encrypt验证过程需通过HTTP或TLS协议,请确保宝塔面板安全组中放行这两个端口。
  • 多域名证书注意事项:一个证书包含多个域名时,每个域名都必须在有效期内可访问。
  • 磁盘空间不足:日志累积可能导致写入失败,建议定期清理 /var/log/letsencrypt 下的旧日志。

效果验证:如何确认证书已自动更新?

  1. 执行一次脚本后,访问任意浏览器打开你的外贸站,点击地址栏锁图标,查看证书有效期。如果过期时间已延长,说明自动续期成功。
  2. 你也可以通过SSH运行命令 certbot certificates 查看所有证书的到期日和续期记录。
  3. 宝塔面板的SSL管理页面也会显示证书状态,通常会自动同步。

常见问题解答

Q1:脚本执行后报错 “Certbot doesn't know how to automatically configure the web server”

这是因为缺少 certbot 的Nginx插件。
请SSH执行 pip install certbot-nginx 或通过包管理器安装:

apt install python3-certbot-nginx   # Debian/Ubuntu
yum install certbot-nginx            # CentOS

Q2:计划任务显示执行成功,但证书并未续期

检查脚本中的证书路径是否与宝塔实际使用的路径一致。
宝塔面板将证书存储在 /www/server/panel/vhost/cert/ 下,且使用自己的管理方式。
更稳妥的做法是使用宝塔的API自动续期(需付费),或改用 acme.sh 工具。
对于免费方案,建议在脚本末尾添加手动复制命令:

cp /etc/letsencrypt/live/你的域名/fullchain.pem /www/server/panel/vhost/cert/你的域名/fullchain.pem
cp /etc/letsencrypt/live/你的域名/privkey.pem /www/server/panel/vhost/cert/你的域名/privkey.pem
/etc/init.d/nginx reload

注意将 你的域名 替换为实际域名。

Q3:使用acme.sh替换certbot是否更简单?

acme.sh是一款轻量级的ACME客户端,支持自动续期并直接刷新宝塔的证书目录。
如果你对certbot不够熟悉,可以考虑切换至acme.sh。
但本文基于certbot已集成在宝塔环境,优先推荐原生工具。

写在最后

自动续期脚本配置一次即可长期免维护,但建议每季度手动检查一次证书状态和计划任务日志。
如果你正在管理多个外贸站,可以将脚本中的证书操作循环执行,或者结合宝塔的批量SSL功能。
遇到异常时优先回看避坑部分,多数问题出在域名解析或端口限制上。
希望这篇教程能帮你省下每次手动续期的十几分钟。

分享到:
上一篇
家用住宅主机进程守护supervisor托管AI中转
下一篇
家用住宅主机多系统KVM虚拟化搭建测试站
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意