HTTPS证书链不完整,浏览器提示不安全修复

为什么浏览器会提示“不安全”?

当你访问自己的HTTPS网站,浏览器地址栏却显示“不安全”或红色警告,很可能是因为服务器只发送了域名证书,没有发送中间证书。
完整的证书链应包含:根证书 → 中间证书 → 域名证书。
根证书内置在浏览器和操作系统中,服务器需要把域名证书和中间证书一起发给客户端。
如果中间证书缺失,浏览器无法验证证书合法性,就会报错。

本文从零开始,教你检测证书链是否完整,并针对Nginx、Apache、宝塔面板给出修复步骤。

先确认是不是证书链的问题

不要急着改配置,先用在线工具或命令行确认问题。

方法一:使用在线SSL检测工具

打开 myssl.com 或 ssllabs.com,输入你的域名,点击检测。
如果结果中出现“证书链不完整”或“Chain issues: Incomplete”,就说明中间证书缺失。

方法二:使用OpenSSL命令检测

在本地终端执行:

openssl s_client -connect 你的域名:443 -showcerts

观察输出的证书列表。
正常情况下应该看到至少两个证书(域名证书和中间证书)。
如果只看到一个证书,且验证结果显示 Verify return code: 21 (unable to verify the first certificate),则确认证书链不完整。

补全证书链:获取中间证书

中间证书通常由你的SSL证书颁发机构(CA)提供。
如果你在购买证书时只下载了域名证书(.crt或.pem文件),需要回到CA的官网或控制台,找到“证书链”或“CA Bundle”下载项。

常见的证书链文件命名可能是 ca_bundle.crt、chain.crt 或 fullchain.pem。
如果找不到,可以尝试用以下命令从域名证书中提取:

openssl x509 -in 你的域名证书.crt -text -noout

查看 Authority Information Access 中的 CA Issuers 链接,用 curl 下载中间证书。
但更推荐直接从CA获取,避免格式错误。

在Nginx中正确配置证书链

Nginx的 ssl_certificate 指令需要指向包含域名证书和中间证书的合并文件,顺序是域名证书在前,中间证书在后。

步骤1:合并证书文件

cat 你的域名证书.crt 中间证书.crt > fullchain.pem

步骤2:修改Nginx配置

找到站点配置文件,通常位于 /etc/nginx/conf.d/你的域名.conf 或 /etc/nginx/sites-available/你的域名。
修改或确认以下行:

ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/你的私钥.key;

注意:ssl_certificate 必须指向合并后的文件,不能只指向域名证书。

步骤3:测试并重载Nginx

nginx -t
nginx -s reload

如果 nginx -t 报错,检查文件路径和权限。

Apache环境下的证书链修复

Apache使用 SSLCertificateFile 和 SSLCertificateChainFile 两个指令。

步骤1:确认中间证书文件

假设你有 domain.crt(域名证书)和 ca_bundle.crt(中间证书)。

步骤2:修改虚拟主机配置

在 块中添加或修改:

SSLCertificateFile /path/to/domain.crt
SSLCertificateKeyFile /path/to/private.key
SSLCertificateChainFile /path/to/ca_bundle.crt

步骤3:重启Apache

systemctl restart httpd   # CentOS
systemctl restart apache2 # Ubuntu/Debian

宝塔面板用户的操作路径

如果你使用宝塔面板,修复更简单:

  1. 登录宝塔面板,进入“网站” → 找到你的站点 → 点击“设置”。
  2. 切换到“SSL”选项卡,在“证书”部分,你会看到两个输入框:证书(PEM格式) 和 私钥(KEY格式)。
  3. 将域名证书和中间证书按顺序粘贴到“证书”框中,即先粘贴域名证书内容,紧接着粘贴中间证书内容。
  4. 保存后,点击“强制HTTPS”确保开启。
  5. 宝塔会自动重载Nginx,无需手动操作。

如果宝塔面板中已有“证书链”选项,直接将中间证书粘贴到对应位置即可。

修复后的验证方法

完成配置后,务必验证证书链是否完整:

  • 再次使用 openssl s_client -connect 你的域名:443 -showcerts,确认输出中有两个以上证书。
  • 使用在线工具重新检测,确保没有“证书链不完整”的提示。
  • 用浏览器无痕模式访问网站,查看地址栏是否显示锁形图标且无警告。
  • 如果仍然报错,尝试清除浏览器缓存或更换浏览器测试。

常见避坑点

  • 证书顺序不能错:合并文件时,域名证书必须在前,中间证书在后。顺序颠倒会导致验证失败。
  • 私钥不要泄露:私钥文件权限建议设置为600,且不要上传到公开目录。
  • 不要混淆证书和私钥:粘贴时注意区分PEM格式的证书和KEY格式的私钥。
  • CA可能提供多个中间证书:某些CA的证书链包含多个中间证书,需要全部合并。
  • 配置修改后必须重载服务:Nginx或Apache不会自动加载新配置,必须执行重载或重启命令。

关于证书链的常见疑问

问:为什么我用了CDN,还是提示证书链不完整?
答:CDN节点也需要配置完整的证书链。请登录CDN控制台,检查SSL证书配置,确保上传了包含中间证书的完整链。

问:免费证书(如Let's Encrypt)也会出现这个问题吗?
答:会。Let's Encrypt签发的证书通常需要配合中间证书使用,如果手动配置时只上传了域名证书,同样会报错。

问:修复后需要重启服务器吗?
答:通常不需要重启服务器,只需重载Web服务(Nginx/Apache)即可。

问:为什么手机浏览器提示不安全,但电脑正常?
答:不同设备对证书链的严格程度不同。手机系统可能缺少某些根证书或对中间证书要求更严,确保链完整即可解决。

分享到:
上一篇
acme.sh自动更新证书,重启Nginx生效脚本
下一篇
CDN预缓存功能,提前缓存CMS首页内容
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意