该提示并非泛指 HTTP 连接,而是浏览器在 TLS 握手或证书验证阶段明确检测到**不可信或中断的信任链**所触发的硬性阻断。其根本原因必属以下三类之一:证书已吊销且 CRL/OCSP 响应被确认为 revoked;证书签名算法或密钥长度违反当前浏览器策略(如 SHA-1 签名、RSA-1024);或证书链中缺失中间 CA 证书,导致无法上溯至操作系统/浏览器信任根。Chrome、Edge 自 2023 年起已默认启用 TLS 1.3 强制 OCSP Stapling 验证,Firefox 则对未启用 Must-Staple 的 EV 证书降级显示。此类警告下,用户点击“高级”→“继续访问”将绕过证书校验,但 TLS 层加密仍生效——**数据未被明文传输,但身份真实性完全不可信**。该警告仅出现在 HTTPS 请求上下文中,与资源是否通过 HTTP 加载无关。
浏览器执行证书验证时严格遵循 RFC 5280 定义的路径验证算法,需同步满足四项条件:时间有效性(NotBefore/NotAfter)、签名可验证(使用父证书公钥解签)、策略约束匹配(如 EKU 中 serverAuth 标志)、吊销状态确认(CRL 分发点可达且无匹配条目,或 OCSP 响应为 good)。任意一项失败即终止验证并抛出该错误。
现代浏览器默认启用 OCSP Stapling,若服务器未配置 stapling 或响应超时(>3s),Chrome 将回退至 OCSP 查询;若 OCSP 响应返回 unauthorized 或 timeout 次数 ≥2,即判定为“revoked 或不可信”,触发该警告。CRL 方式因需下载完整列表,在移动端尤其易因网络中断失败。
Nginx/Apache 配置中仅部署终端证书(domain.crt)而遗漏 intermediate.crt,将导致客户端无法构建完整链。iOS 和 Android WebView 对链缺失容忍度低于桌面端,更易报此错。
第一步:使用 ssl证书工具 输入域名,检查证书链是否完整、OCSP 响应状态、签名算法及密钥强度;
第二步:在 Chrome 开发者工具 → Security 标签页查看详细错误码(如 NET::ERR_CERT_REVOKED);
第三步:确认 Web 服务器是否启用 OCSP Stapling(OpenSSL 命令:openssl s_client -connect example.com:443 -status);
第四步:验证系统时间是否偏差 >5 分钟——时间错误将直接导致 NotBefore/NotAfter 判定失败。
| 维度 | 参考标准 | 工程师建议 |
|---|---|---|
| 证书有效期 | CA/B Forum BR 1.8.1:最大 398 天 | 续期窗口设为到期前 30 天,避免自动续期延迟 |
| 密钥强度 | RFC 8659:RSA ≥2048,ECDSA ≥P-256 | 新签发证书统一采用 ECDSA P-256 + SHA-256 |
| OCSP Stapling | Chrome 110+ 强制要求 | Nginx 启用 ssl_stapling on; ssl_stapling_verify on; |
Q:使用自签名证书或内网 CA 时为何必然触发该警告?
A:因根证书未预置在操作系统或浏览器信任库中,无法完成信任锚验证,属于设计行为而非故障。
Q:免费ssl证书是否更容易触发该警告? A:否。免费ssl证书 与商业证书遵循相同 CA/B Forum 合规要求,区别仅在验证等级(DV)与支持周期。
Q:Android App 内 WebView 加载 HTTPS 页面报此错,是否与系统证书库有关? A:是。Android 7+ 应用默认不信任用户安装的 CA,需在 network_security_config.xml 中显式声明 trust-anchors。
加密您的网站,赢得客户信任!