在nginx server块中补全证书链是最可靠方案:将域名证书与中间证书按序拼接为fullchain.pem,替换ssl_certificate路径并添加ssl_trusted_certificate指令,重启nginx后通过openssl和ssl labs验证链完整。

直接在 Nginx 的 server 块中补全证书链,是最可靠、最可控的解决方式。它绕过面板自动逻辑,确保每次握手都提供完整信任路径,浏览器不再因缺失中间证书而报“连接不安全”或“证书链不完整”。
确认并准备完整的证书文件
证书链必须按顺序拼接为单个 PEM 文件:先放你的域名证书,紧接着换行粘贴中间证书(CA Bundle),不能插入空行或额外字符,也不包含私钥。可命名为 fullchain.pem,存放在如 /www/wwwroot/yourdomain/ 这类路径下。若原证书文件里只有域名证书,需从证书颁发机构官网下载对应 CA Bundle 补齐。
在 server 块中显式声明证书链
进入宝塔面板【网站】→ 对应站点 → 【配置文件】,找到启用 HTTPS 的 server 块,在已有 ssl_certificate 和 ssl_certificate_key 行之后,添加以下两行:
-
ssl_certificate /www/wwwroot/yourdomain/fullchain.pem;(覆盖原证书路径,确保此处是拼接后的完整链) -
ssl_trusted_certificate /www/wwwroot/yourdomain/fullchain.pem;(明确告诉 Nginx 哪些证书可用于验证客户端证书,增强兼容性)
保存后重启 Nginx。这一步让服务器主动发送整条链,而不是依赖浏览器自行补全。
验证是否生效
部署完成后,别只看浏览器图标——用命令行快速确认:
- 在服务器执行:
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -text | grep "Subject:",应看到至少两段输出:一段是你的域名证书,一段是中间证书。 - 用 SSL Labs SSL Test 扫描域名,结果页中 “Certification Paths” 应显示绿色 ✔️,且注明 “Chain issues: None”。











