You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在iOS模拟器WebView中打开非localhost的自定义local域名Web项目

解决iOS模拟器WebView无法访问本地HTTPS域名的问题

1. 确认证书域名匹配

自签名证书的**Subject Alternative Name (SAN)**必须包含nomatter.local.something.ru,不能仅依赖主域名。生成证书时要:

  • 确保证书的CN(通用名称)或SAN字段明确包含*.local.something.ru或nomatter.local.something.ru
  • 在Mac钥匙串访问中查看证书详情,进入「信息」→「主题备用名称」,确认目标域名在列表内

2. 手动开启模拟器证书信任

导入证书到模拟器后,必须手动启用信任(iOS 13+强制要求):

  • 打开模拟器「设置」→「通用」→「关于本机」→「证书信任设置」
  • 找到导入的自签名证书,开启「启用完全信任」开关

3. 检查Docker中Nginx的HTTPS配置

确保Nginx加载了对应nomatter.local.something.ru的证书和私钥,配置示例:

server {
    listen 443 ssl;
    server_name nomatter.local.something.ru;

    ssl_certificate /path/to/your/local-cert.pem;
    ssl_certificate_key /path/to/your/local-key.pem;

    location / {
        proxy_pass http://your-node-bff:port;
        # 按需添加代理头(如Host、X-Forwarded-Proto等)
    }
}
  • 验证Nginx配置语法:docker exec <nginx容器名> nginx -t
  • 重启Nginx容器:docker restart <nginx容器名>

4. 配置iOS项目ATS规则

如果项目启用了App Transport Security(ATS),需在Info.plist中添加域名例外:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>local.something.ru</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <false/> <!-- 仅信任合法HTTPS证书,测试环境可临时改为true -->
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.2</string>
        </dict>
    </dict>
</dict>

5. 验证SSL连接有效性

用openssl测试Nginx的SSL配置是否正常:

openssl s_client -connect nomatter.local.something.ru:443
  • 检查输出中是否有Verify return code: 0 (ok),若有错误根据提示修复证书或配置

6. 清理模拟器缓存

缓存可能导致证书不生效,可重置模拟器:

  • 点击模拟器顶部菜单「硬件」→「擦除所有内容和设置」
  • 重新导入证书并开启信任后再测试访问

内容的提问来源于stack exchange,提问作者Uzakov Nikita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 11:16:15