浏览器提示"证书不被信任"警告怎么办?
很多用户在部署完 SSL 证书后,用浏览器访问会突然看到“您的连接不是私密连接”或“证书不受信任”的红色警告。
这个错误并不是加密算法失效,而是客户端在校验证书时,无法在本地根证书库中找到签发该证书的权威机构。实际排查时,最常见的是下面几类情况,可以按照顺序依次检查。
为什么会触发证书不受信任的警告?
当浏览器尝试建立安全的 HTTPS 连接时,必须验证服务器下发的整条证书信任链是否可追溯到操作系统内置的根 CA。
常见的情况包括:
- 服务器缺少中间证书(证书链不完整):服务器只配置了站点自身的域名证书,没有把 CA 机构的中间证书拼接进去,导致客户端无法向上追溯。
- 使用了自签名或内网私有证书:企业内网或测试环境使用了未被公开信任机构签发的证书,客户端自然无法识别。
- 客户端本地系统时间错误:客户端设备的时间超出了证书的有效起止日期,导致验证失败。
关于证书的合法签发机构与基础概念,可以参考 SSL/TLS证书基础知识。
怎么检查服务器的证书链完整性?
如果不确定服务器是否正确下发了完整的证书链,可以使用 OpenSSL 命令行工具直接测试:
openssl s_client -connect example.com:443 -servername example.com
在返回的证书链信息中,观察 Certificate chain 的深度。如果链条断开或者只显示了一张证书,说明中间证书缺失。如果由于配置失误导致访问异常,可查阅 HTTPS访问异常排查 获取排查指引。
排查流程与解决步骤
遇到证书不受信任时,可以按照以下排查路径逐步确认:
- 第一步:补全中间证书链
在 Nginx 或 Apache 的证书配置文件中,需要将主域名证书与 CA 提供的中间证书(Bundle / Intermediate)合并为一个完整的
.crt或.pem文件。正确的安装流程可参考 服务器安装证书。 - 第二步:检查证书有效期与系统时间 确认服务器证书是否已经过期,同时检查客户端设备的系统日期和时间是否准确。时间偏差过大会直接导致证书被判定为未生效或已过期。
- 第三步:确认是否为自签名证书 如果是内部测试系统使用了自签名证书,浏览器或客户端会默认拦截。正式公网业务必须通过正规渠道采购或申请受信任的商业或免费凭证。如果需要了解具体的选型方案,可参考 如何选择SSL证书。
- 第四步:检查 CDN 或负载均衡回源配置 如果前端接入了 CDN 或负载均衡,边缘节点绑定的证书如果配置错误或未及时更新,也会导致客户端收到不受信任的链条。
对于准备将老旧业务进行整体安全升级的团队,可以参考 HTTPS部署方案 的标准实施步骤。
FAQ 常见问题解答
Q:为什么电脑上访问正常,手机访问却提示证书不受信任?
A:这种情况通常是因为服务器漏装了中间证书。部分桌面浏览器的本地缓存或根证书库比较全,会自动补全信任链;而移动端或部分严格的客户端由于缺少中间证书,就会直接报错。
Q:免费证书和付费证书在信任度上有区别吗?
A:没有区别。只要是通过正规 CA 签发的免费 DV 证书和付费证书,在主流浏览器和操作系统中的根信任级别是完全一样的,都能实现绿锁和安全加密。
Q:如何在线检测网站的证书链有没有配错?
A:如果无法通过命令行排查,可以借助专业的 SSL链检测 工具,输入域名即可直观看到中间证书是否缺失。
京公网安备11010502031690号
网站经营企业工商营业执照