IPHONE_TRUST_CERT.md 5.0 KB

📱 iPhone Safari 信任自签名证书详细指南

⚠️ 问题原因

错误信息:

此服务器的证书无效。你可能正在连接到一个伪装成"192.168.2.105"的服务器

原因:自签名证书需要手动信任,Safari不会自动信任。


✅ 解决方案(2种方法)

方法A:临时信任(最简单)

这个方法每次打开Safari都需要重新信任,但最快速。

步骤详解

1. 确保后端正在运行

在电脑终端检查:

cd /Users/wuzilong/work/00code/Tolan/backend
python main.py
# 应该看到:使用SSL证书启动

2. 在iPhone Safari访问后端API

在地址栏输入:

https://192.168.2.105:8000/docs

3. 看到警告页面

会显示:

⚠️ 无法验证服务器身份
"192.168.2.105"的身份无法验证

重要:不要点击"返回"!

4. 点击"显示详细信息"(灰色小字)

5. 滚动到底部,点击蓝色链接"访问此网站"

6. 会再次提示,再点击一次"访问此网站"

7. 成功!

如果看到FastAPI文档页面(黑色背景,很多API列表),说明证书已被临时信任。

8. 现在访问前端

在新标签页输入:

https://192.168.2.105:5173

应该可以正常打开并连接WebSocket了!

9. 验证连接

在Safari中,点击地址栏左侧的 aA → 选择"Web检查器"(需要提前在设置中启用),查看控制台:

应该看到:

✅ 连接WebSocket: wss://192.168.2.105:8000/ws/realtime
✅ WebSocket连接成功

方法B:永久安装证书(推荐,体验最好)

这个方法需要多几步,但只需要设置一次,之后永久有效。

步骤1:电脑导出证书

在电脑终端运行:

cd /Users/wuzilong/work/00code/Tolan/ssl

# 转换证书为iOS可识别的格式
openssl x509 -outform der -in cert.pem -out tolan-cert.crt

# 启动HTTP服务器(让iPhone下载证书)
python3 -m http.server 8080

保持这个终端运行。

步骤2:iPhone下载证书

在iPhone Safari访问:

http://192.168.2.105:8080/tolan-cert.crt

注意:这里用 http(不是https),因为是下载文件。

会弹出提示:

"Safari"试图下载配置描述文件。是否允许?

点击"允许"

会显示:

描述文件已下载
请前往"设置"中查看要安装的描述文件

步骤3:安装描述文件

  1. 打开iPhone "设置"
  2. 点击 "通用"
  3. 往下滚动,找到 "VPN与设备管理"(或"设备管理")
  4. 在"已下载的描述文件"下,点击 "Tolan Voice Assistant"
  5. 点击右上角 "安装"
  6. 输入你的iPhone密码
  7. 会显示警告"未签名",点击 "安装"(确认)
  8. 再次点击 "安装"(确认)
  9. 点击 "完成"

步骤4:信任证书(关键!)

  1. 返回 "设置" → "通用"
  2. 点击 "关于本机"
  3. 往下滚动到底部,点击 "证书信任设置"
  4. 找到 "Tolan Voice Assistant"
  5. 打开右侧的开关(变成绿色)
  6. 会提示"继续",点击 "继续"

✅ 完成!证书已永久信任

步骤5:测试访问

现在在Safari访问:

https://192.168.2.105:5173

应该:

  • ✅ 没有任何证书警告
  • ✅ 直接加载页面
  • ✅ WebSocket自动连接成功

🎯 推荐操作

对于快速测试 → 使用方法A(5分钟)

对于长期使用 → 使用方法B(10分钟,但永久有效)


🔍 常见问题

Q1: 方法A每次都要重新信任?

是的,Safari的临时信任在以下情况会失效:

  • 关闭Safari应用
  • 重启iPhone
  • 清除Safari缓存

解决:使用方法B永久安装证书

Q2: 找不到"VPN与设备管理"?

可能的原因:

  • iOS版本不同,可能叫"设备管理"或"描述文件"
  • 描述文件未下载成功

解决:重新从步骤2下载

Q3: "证书信任设置"是空的?

原因:描述文件已安装,但需要重启设置App

解决:

  1. 完全关闭"设置"App(上滑关闭)
  2. 重新打开"设置"
  3. 进入"关于本机" → "证书信任设置"

Q4: 电脑HTTP服务器无法访问

检查:

# 确认服务器正在运行
ps aux | grep "http.server"

# 测试电脑能否访问
curl http://192.168.2.105:8080/tolan-cert.crt

📊 方法对比

方法 操作次数 有效期 难度
方法A:临时信任 每次2次点击 关闭Safari前 ⭐ 简单
方法B:安装证书 一次10步 永久 ⭐⭐ 中等

🎯 现在请操作

如果想快速测试 → 方法A:

  1. iPhone Safari访问:https://192.168.2.105:8000/docs
  2. 点击"显示详细信息"
  3. 点击"访问此网站"(2次)
  4. 成功后,访问:https://192.168.2.105:5173

如果想长期使用 → 方法B:

按照上述"方法B"的完整步骤操作。

需要我提供更详细的某个步骤吗?🤔