浏览器不识别 SSL 证书,证书不受信任怎么办?
浏览器不识别 SSL 证书,并不代表服务器没有安装证书,而是浏览器在建立 HTTPS 连接时无法验证该证书的可信身份。本质上是在 TLS 握手阶段对证书的验证失败,而非“读取不到证书文件”。
在实际运维中,绝大部分此类故障源于证书链缺失、域名绑定不匹配或系统根证书未预置。现代主流浏览器(如 Chrome、Edge、Firefox 等)均建立了严格的信任库管理机制,一旦信任链校验失败,浏览器通常会显示安全警告,并限制用户继续访问。
在排查证书验证问题前,如果对基础概念尚不熟悉,可先参考 什么是SSL证书。
浏览器如何验证 SSL 证书?
现代浏览器在建立 HTTPS 安全连接时,会严格执行以下四步校验:
- 核查根 CA 信任:检查签发机构是否属于操作系统或浏览器内置信任库中的根 CA。
- 构建完整信任链:逐层回溯校验“站点证书 \(\rightarrow\) 中间 CA 证书 \(\rightarrow\) 根 CA 证书”的签名链条。
- 校验 SAN 域名匹配:核对证书的主体别名(SAN)字段,确认其是否精确覆盖当前访问的域名(包含带
www和不带www的变体)。 - 查验吊销状态:部分浏览器还会检查证书状态,例如确认该证书是否已经被CA吊销。
任一环节校验失败,浏览器均会弹窗警告(如 NET::ERR_CERT_AUTHORITY_INVALID 或 NET::ERR_CERT_COMMON_NAME_INVALID)。
了解证书分类与校验深度的区别,可参阅 SSL证书类型怎么分?。
导致浏览器不识别证书的典型原因
1. 证书链断裂(缺失中间证书)
CA 机构通常采用三级证书体系(根 CA \(\rightarrow\) 中间 CA \(\rightarrow\) 站点证书)。如果在 Web 服务器(Nginx、Apache 或 IIS)中仅配置了终端站点证书而遗漏了中间证书(Intermediate Certificate),浏览器将无法向上构建信任路径,从而引发不信任告警。在 Nginx 环境中,一般需要配置包含站点证书和中间证书的 fullchain.pem,而不是只配置单独的 server certificate。
2. 域名绑定与 SAN 字段不匹配
访问的域名未包含在证书的 SAN 列表中(例如申请时仅填写了 example.com,而用户通过 [www.example.com](https://www.example.com) 访问),浏览器就会提示域名不匹配。目前浏览器主要依据 SAN 字段判断域名匹配关系,CN 字段已经不再作为主要判断依据。
3. 私有 CA 或自签名证书未预置
内网环境使用的自签名证书或企业自建 CA 签发的证书,由于其根证书未内置在公共操作系统的信任库中,默认会被所有外部浏览器识别为不受信任。
实际部署中最容易出现的问题
针对常见的报错与识别异常,排查与部署建议整理如下:
| 故障现象 | 潜在风险与原因 | 实际运维建议 |
|---|---|---|
| 证书链不完整 | 服务器未挂载完整 PEM 证书链,导致移动端或部分浏览器报错 | 补全中间证书。部署说明可参考 SSL证书安装与部署;若出现错误提示可查阅 如何修复SSL证书错误?。 |
| 域名不匹配 | 证书签发域名与实际解析访问的域名不一致 | 重新核对证书绑定的 SAN 列表,必要时切换至多域名或通配符证书。 |
| 全局协议切换 | 改版后网站仍调用 HTTP 静态资源,导致提示“不安全” | 完成站内资源重定向,具体说明参考 网站如何从HTTP更改为HTTPS?。 |
选购或升级公共可信的商业证书时,也可查阅 SSL证书选购指南。
常见问题 FAQ
Q:安装证书后浏览器提示“您的连接不是私密连接”,但服务器上明明已上传证书?
A:这绝大多数是因为只上传了终端站点证书,而未配置中间证书(Intermediate CA)。需要将站点证书与中间证书合并为完整的证书链文件后再重新挂载。
Q:为什么手机浏览器能正常打开,但电脑端 Chrome 却提示证书不受信任?
A:部分手机操作系统或应用内嵌浏览器会尝试利用内置缓存补全中间证书,而桌面版 Chrome 校验更为严格;此外,需检查电脑端是否开启了代理或安全软件截获了 TLS 握手。
Q:自建 CA 签发的证书如何让内网浏览器识别并信任?
A:必须将自建 CA 的根证书导出,并手动(或通过 Windows 组策略等工具)导入到客户端设备的“受信任的根证书颁发机构”存储区中。



京公网安备11010502031690号
网站经营企业工商营业执照
















