手机和操作系统

Safari 无法与服务器建立安全连接怎么办

作者: · 最后核实

报错信息Safari can't open the page because Safari can't establish a secure connection to the server

“Safari 无法与服务器建立安全连接”的意思是:和网站之间的加密握手失败了,Safari 还没走到检查证书那一步。 原因可能是服务器太老,但在 iPhone 和 Mac 上,同样常见的是设备上的过滤、VPN 或屏幕使用时间设置。

先判断是网站的问题还是你设备的问题

用另一台设备或在线检测查同一个网址,就能分清问题在服务器还是在你的设备上。用 SSL 检测 测服务器:

curl ssl.sh/example.com
  • 检测也握手失败,或者只显示 TLS 1.0/1.1:服务器的问题。
  • 检测正常:分别用蜂窝数据、无痕浏览窗口、关掉 VPN 再试。哪一种能打开,就说明原因在本地,对照下面排查。

原因

这个提示有 5 种原因:服务器端是旧版 TLS 或 TLS 监听配置错误,设备端是屏幕使用时间、VPN/DNS 描述文件和安全软件。

1. 服务器只支持旧版 TLS 或旧套件

苹果平台上的 Safari 已经不再协商 TLS 1.0 和 1.1,并且要求前向保密的加密套件。检查:

openssl s_client -connect example.com:443 -servername example.com -tls1_2 </dev/null 2>&1 | grep -E "Protocol|Cipher|alert"

2. 屏幕使用时间的内容限制

屏幕使用时间里的“限制成人网站”或白名单,会让 Safari 对 HTTPS 连接显示这条提示。检查“设置 → 屏幕使用时间 → 内容和隐私访问限制 → 商店、媒体、网页和游戏 → 网页内容”(不同 iOS 版本路径略有差异)。

3. VPN、DNS 或过滤类描述文件

VPN App、加密 DNS 描述文件、广告拦截和家长控制都可能丢弃或改写 TLS 流量。检查“设置 → 通用 → VPN 与设备管理”,断开 VPN 测试。

4. Mac 上的安全软件

会检查 HTTPS 的杀毒软件网页防护或网络过滤器,可能让部分网站握手失败。临时暂停 HTTPS 扫描功能测试,见 杀毒软件 HTTPS 扫描。

5. TLS 监听坏了或端口不对

服务器在 443 上返回明文 HTTP,或者 CDN 上没有这个域名的证书。同一台服务器在 Chrome 里会显示 ERR_SSL_PROTOCOL_ERROR 或 ERR_SSL_VERSION_OR_CIPHER_MISMATCH。

在各浏览器/系统上的样子

同一个握手失败在 iOS App 里是 NSURLErrorDomain -1200,在 Chrome 和 Edge 里是“此网站无法提供安全连接”。

设备 显示内容
iPhone / iPad Safari 提示无法打开网页,因为 Safari 无法与服务器建立安全连接
Mac Safari 页面内显示同样的提示
iOS App NSURLErrorDomain Code=-1200(详情)
Chrome / Edge “此网站无法提供安全连接”

站长怎么修

服务器端的修法是开启 TLS 1.2 和 1.3、配好前向保密套件,并给 CDN 或负载均衡上的每个域名配证书。

1. 开启 TLS 1.2、1.3 和前向保密套件。

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;

宝塔面板在站点 SSL 设置里勾选 TLSv1.2/1.3;阿里云、腾讯云 CDN 选择最低 TLS 1.2 的策略。其他服务器可以用 TLS 配置生成器 生成等效配置。

2. CDN 或负载均衡上每个域名都要有证书。

3. 用苹果设备实测。 curl ssl.sh/example.com 通过后,再用 iPhone 在蜂窝数据下用 Safari 打开,并查看服务器日志里来自苹果设备的握手错误。

常见问题

Mac 上 Chrome 能打开,Safari 却不行,为什么?

Mac 上的 Chrome 用自己的 TLS 实现和证书验证器,Safari 用苹果的。同一个服务器配置,一边能接受、另一边可能失败;而且内容拦截器、屏幕使用时间这类只作用于 Safari 的设置不会影响 Chrome。

屏幕使用时间真的会导致这个错误吗?

会。在“内容和隐私访问限制”里开了“限制成人网站”或只允许特定网站后,Safari 会拦下它无法分类的 HTTPS 页面,用户看到的往往就是这条提示,而不是明确的拦截页。去“设置 → 屏幕使用时间 → 内容和隐私访问限制”检查。家长给孩子设置过的手机尤其常见。

一直重试安全吗?

安全。和证书警告不同,这个错误不会让你在不安全的连接上继续,重试没有风险,只是在原因解决前打不开。

资料来源

  1. Apple Developer: NSURLErrorSecureConnectionFailed
  2. Apple Developer: Preventing insecure network connections
  3. RFC 8996: Deprecating TLS 1.0 and TLS 1.1