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

> Safari 提示无法建立安全连接，说明 TLS 握手失败：服务器 TLS 太旧、内容过滤、VPN 或 DNS 描述文件、屏幕使用时间限制都可能导致。

Source: https://ssl.sh/zh/errors/safari-cant-establish-secure-connection/
Last updated: 2026-11-10

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

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

用另一台设备或在线检测查同一个网址，就能分清问题在服务器还是在你的设备上。用 [SSL 检测](https://ssl.sh/zh/tools/ssl-checker/) 测服务器：

```bash
curl ssl.sh/example.com
```

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

## 原因

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

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

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

```bash
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 扫描](https://ssl.sh/zh/errors/antivirus-https-scanning-ssl-error/)。

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

服务器在 443 上返回明文 HTTP，或者 CDN 上没有这个域名的证书。同一台服务器在 Chrome 里会显示 [ERR_SSL_PROTOCOL_ERROR](https://ssl.sh/zh/errors/err-ssl-protocol-error/) 或 [ERR_SSL_VERSION_OR_CIPHER_MISMATCH](https://ssl.sh/zh/errors/err-ssl-version-or-cipher-mismatch/)。

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

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

| 设备 | 显示内容 |
|---|---|
| iPhone / iPad Safari | 提示无法打开网页，因为 Safari 无法与服务器建立安全连接 |
| Mac Safari | 页面内显示同样的提示 |
| iOS App | `NSURLErrorDomain Code=-1200`（[详情](https://ssl.sh/zh/errors/nsurlerrordomain-1200/)） |
| Chrome / Edge | “此网站无法提供安全连接” |

## 站长怎么修

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

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

```nginx
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 配置生成器](https://ssl.sh/zh/tools/tls-config-generator/) 生成等效配置。

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

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