宝塔面板支持多SSL证书平滑更换:一、站点设置中上传并切换备用证书;二、用计划任务自动替换配置中的证书路径;三、通过符号链接原子化切换证书;四、调用API接口远程更新证书绑定。

如果您在宝塔面板中为同一域名或多个子域名配置了多个SSL证书,并需要在不中断服务的前提下完成证书更换,则需避免直接删除旧证书导致HTTPS连接中断。以下是实现多证书管理与平滑更换的具体操作步骤:
一、通过站点设置绑定备用SSL证书
宝塔面板支持为单个站点预设多个已上传的SSL证书,可在不重启Web服务的情况下切换生效证书,从而规避证书过期或更换时的访问中断风险。
1、登录宝塔面板,进入【网站】页面,找到目标站点,点击右侧【设置】按钮。
2、在弹出窗口中切换至【SSL】选项卡,确认当前已启用的证书名称及有效期。
3、点击【其他证书】区域右上角的【+ 添加证书】按钮,上传新证书文件(.pem 和 .key)并填写证书名称,例如“example_com_2025_q2”。
4、返回【SSL】主界面,在【选择证书】下拉菜单中选中新上传的证书,点击【保存】按钮。
5、勾选【强制HTTPS】并确保【HSTS】未开启或已评估兼容性,点击【启用SSL】。
注意:此操作仅更新Nginx/Apache配置中的证书路径,不会重启服务,客户端下次TLS握手将自动使用新证书。
二、利用宝塔计划任务自动轮换证书
当存在多个长期有效的证书(如不同CA签发或不同密钥类型),可通过定时任务修改站点配置文件中的证书引用路径,实现按策略轮换,无需人工介入。
1、进入【计划任务】页面,点击【添加计划任务】。
2、任务类型选择【Shell脚本】,执行周期按需设定(例如每月1日02:00)。
3、在脚本内容中写入sed命令替换指定站点的Nginx配置段落:
sed -i 's#/www/wwwroot/example.com/ssl/old.pem#/www/wwwroot/example.com/ssl/new.pem#g' /www/server/panel/vhost/nginx/example.com.conf。
4、追加重载命令:nginx -s reload 或 /etc/init.d/nginx reload。
5、保存后手动执行一次任务,验证证书路径是否更新成功且站点仍可HTTPS访问。
三、使用符号链接动态指向活动证书
通过Linux符号链接机制,将站点配置中固定的证书路径指向一个逻辑名称(如current.crt),再通过原子化替换链接目标,实现毫秒级证书切换。
1、在站点SSL目录(如 /www/wwwroot/example.com/ssl/)下创建统一引用名:
ln -sf fullchain_old.pem current.crt && ln -sf privkey_old.pem current.key。
2、修改站点Nginx配置,将ssl_certificate和ssl_certificate_key指令路径分别设为:
ssl_certificate /www/wwwroot/example.com/ssl/current.crt;
ssl_certificate_key /www/wwwroot/example.com/ssl/current.key;
3、部署新证书后,执行原子化替换:
ln -sfT fullchain_new.pem /www/wwwroot/example.com/ssl/current.crt。
ln -sfT privkey_new.pem /www/wwwroot/example.com/ssl/current.key。
nginx -s reload。
注意:必须使用 -T 参数确保符号链接目标被完全替换,避免出现悬空链接。
四、借助宝塔API接口远程触发证书切换
适用于批量管理多个站点或与CI/CD流程集成的场景,通过调用宝塔官方开放的Web API,以POST请求方式更新指定站点的SSL配置。
1、在【面板设置】→【API接口】中开启API并记录Key与端口。
2、构造curl请求,其中siteName为站点域名,cert_id为新证书在宝塔数据库中的唯一ID(可通过GET /site/get_sites_list接口获取):
curl -X POST "https://服务器IP:8888/site/set_ssl" -H "Content-Type: application/json" -d '{"siteName":"example.com","cert_id":"12345"}' -H "Authorization: Bearer YOUR_API_KEY"。
3、检查返回JSON中的status字段是否为True,确认证书绑定成功。
4、立即发起HTTPS请求验证响应头中Server证书指纹是否已更新为新证书SHA256值。










