宝塔一键修复SSL证书链缺失HTTPS报错
宝塔面板部署SSL证书后,浏览器提示证书链缺失(NET::ERR_CERT_AUTHORITY_INVALID)是因为服务器未发送中间证书。
解决方法是使用宝塔后台'SSL'菜单中的'一键修复证书链'功能,或手动将完整证书链(含根证书和中间证书)合并后重新部署。
本文针对零基础用户,提供从检查到修复的完整步骤。
证书链缺失导致HTTPS报错的原因
SSL证书链由域名证书、中间证书和根证书组成。
如果宝塔只部署了域名证书,没有附带中间证书,浏览器无法验证完整信任链,就会报错。
常见于从第三方CA下载证书时只粘贴了域名证书部分,或者使用了某些一键证书申请脚本遗漏了中间证书环节。
方法一:使用宝塔一键修复证书链
这是最简单的方式,适用于宝塔面板已安装SSL证书但仍报错的情况。
- 登录宝塔面板,进入左侧菜单「网站」,点击目标站点右侧的「设置」。
- 切换到「SSL」选项卡,找到已部署的证书区域。
- 如果之前使用“其他证书”方式部署,在证书密钥下方会看到「一键修复证书链」按钮。如果使用Let's Encrypt自动申请,同样存在此按钮。
- 点击「一键修复证书链」,宝塔会自动从证书中提取并补全缺失的中间证书。
- 修复成功后会提示“证书链已修复”,此时无需重启Nginx,直接刷新浏览器检查。
注意:如果一键修复后按钮仍显示可用,说明证书链可能本身就存在问题,请参考方法二手动处理。
方法二:手动替换完整证书链
当一键修复无效,或者你希望精确控制证书链内容时使用。
- 从证书颁发机构(CA)重新下载完整的证书包,通常包含
.crt(或.pem)和.key文件。大多数CA会提供“完整证书链”或“CA Bundle”文件。 - 使用文本编辑器打开完整证书链文件(如
fullchain.crt),内容通常是域名证书、中间证书、根证书按顺序拼接的文本块。 - 在宝塔网站设置 → SSL → 其他证书中,将「证书(PEM格式)」框内替换为完整证书链内容(包含所有证书文本块),「密钥(KEY)」框粘贴私钥。
- 保存后,宝塔会自动重载Nginx配置。
- 使用在线SSL检测工具(如myssl.com)输入域名,确认证书链完整。
验证SSL是否正常
- 浏览器无锁头警告:直接访问
https://你的域名,不应出现“您的连接不是私密连接”页面。 - 证书信息显示完整:点击地址栏锁图标 → 证书,查看证书路径选项卡,应显示根证书为信任机构。
- 在线检测:在 SSL Labs 或上述 myssl.com 检测,评分至少为 A,证书链状态应为“链完整”。
避坑指南
- 证书链拼接顺序:必须域名证书在最前面,然后中间证书,最后根证书(根证书可选,建议保留以避免某些旧设备不识别)。
- 宝塔一键修复后仍然报错:检查是否使用了CDN(如CloudFlare),CDN端也需要部署完整证书链,此时应在CDN后台设置而不是宝塔。
- Let's Encrypt证书自动续签:宝塔自动续签时通常不会丢失证书链,但如果手动修改过证书内容,续签可能会覆盖。建议使用宝塔自带申请,避免手动干预。
- 重启Nginx:修改证书后宝塔会自动重载,若未生效可在软件商店 → Nginx → 设置中点击「重启」确保生效。
常见问题解答
1. 为什么我用Let's Encrypt证书也需要手动补全?
Let's Encrypt证书默认由宝塔自动管理,正常情况证书链完整。
但如果使用了第三方脚本或手动替换过证书文件,可能导致证书链缺失。
建议在宝塔SSL界面使用“一键修复”重新补全。
2. 一键修复后还是报错怎么办?
先刷新浏览器缓存并等待5分钟。
检查是否使用了CDN或反向代理,如果是,需要在CDN端部署完整证书。
另外可以尝试手动替换为CA提供的完整chain文件。
3. 证书链文件从哪里获取?
- 购买证书的CA通常会通过邮件发送包含完整链的压缩包。
- Let's Encrypt可通过宝塔后台下载。
- 免费证书可从sslforfree.com等工具获取,下载时选择“包含中间证书”版本。
4. 补全证书链后需要重启Nginx吗?
宝塔面板保存证书配置会自动重载Nginx,无需额外操作。
如果手动编辑配置文件,才需要在终端执行 nginx -s reload。