iOS 设备上出现 TLS 错误导致安全连接失败,通常不是证书本身“失效”,而是客户端(iOS)与服务器在 TLS 握手阶段不兼容。常见原因包括:服务器启用已弃用的 TLS 1.0/1.1 协议、缺少 SNI 支持、证书链不完整、使用不被 iOS 信任的根证书(如自签名或私有 CA)、或 OCSP Stapling 配置异常。iOS 自 iOS 10 起强制要求 TLS 1.2+,且仅信任 Apple 根证书列表中的 CA。
该问题本质是协议层或 PKI 链路配置不符合 Apple 平台的安全策略。CA/B Forum 规范(BRs v2.0)和 Apple 的 Root Program 要求明确限制弱算法(如 SHA-1、RSA < 2048 位)、禁用不安全扩展,并强制完整证书链传输。实际部署中,Nginx/Apache 若未正确配置 ssl_trusted_certificate 或未合并中间证书,会导致 iOS 无法构建信任链;同时,若服务器未在 ServerHello 中正确返回 SNI 域名对应的证书,iOS 会直接终止连接并报错 -9802(kTLSErrorDomain / kTLSErrorServerAuthFailed)。
典型复现场景:某企业内网 Web 应用启用 TLS 1.1 + SHA-1 签名证书,在 iOS 15.7 或更高版本访问时触发 NSURLErrorDomain -1200;或使用非主流 CA(如部分国产 CA 未入 Apple 根库)签发的 DV SSL证书,即使浏览器可访问,iOS WebView 仍拒绝建立连接。另一常见情况是 CDN(如 Cloudflare)回源配置错误,导致 Origin Server 返回空证书链或过期 OCSP 响应。
加密您的网站,赢得客户信任!