错误信息:
此服务器的证书无效。你可能正在连接到一个伪装成"192.168.2.105"的服务器
原因:自签名证书需要手动信任,Safari不会自动信任。
这个方法每次打开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连接成功
这个方法需要多几步,但只需要设置一次,之后永久有效。
在电脑终端运行:
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
保持这个终端运行。
在iPhone Safari访问:
http://192.168.2.105:8080/tolan-cert.crt
注意:这里用 http(不是https),因为是下载文件。
会弹出提示:
"Safari"试图下载配置描述文件。是否允许?
点击"允许"
会显示:
描述文件已下载
请前往"设置"中查看要安装的描述文件
✅ 完成!证书已永久信任
现在在Safari访问:
https://192.168.2.105:5173
应该:
对于快速测试 → 使用方法A(5分钟)
对于长期使用 → 使用方法B(10分钟,但永久有效)
是的,Safari的临时信任在以下情况会失效:
解决:使用方法B永久安装证书
可能的原因:
解决:重新从步骤2下载
原因:描述文件已安装,但需要重启设置App
解决:
检查:
# 确认服务器正在运行
ps aux | grep "http.server"
# 测试电脑能否访问
curl http://192.168.2.105:8080/tolan-cert.crt
| 方法 | 操作次数 | 有效期 | 难度 |
|---|---|---|---|
| 方法A:临时信任 | 每次2次点击 | 关闭Safari前 | ⭐ 简单 |
| 方法B:安装证书 | 一次10步 | 永久 | ⭐⭐ 中等 |
如果想快速测试 → 方法A:
https://192.168.2.105:8000/docshttps://192.168.2.105:5173如果想长期使用 → 方法B:
按照上述"方法B"的完整步骤操作。
需要我提供更详细的某个步骤吗?🤔