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

React Native Expo调用自签名证书HTTPS Node.js服务网络错误求解

解决方案

本地开发场景

方法一:安装证书到安卓系统信任库

  • 将你生成的自签名证书certificate.pem后缀修改为.crt
  • 发送文件到安卓真机,依次打开手机设置 > 安全 > 加密与凭据 > 安装证书 > 选择CA证书,选中传入的.crt文件完成安装
  • 重启Expo开发服务与应用后重新发起请求即可

方法二:配置Expo项目信任自定义证书(无需修改系统设置)

  1. 在Expo项目根目录新建network_security_config.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">192.168.1.8</domain>
        <trust-anchors>
            <certificates src="@raw/server_cert"/>
            <certificates src="system"/>
        </trust-anchors>
    </domain-config>
</network-security-config>
  1. 打开项目app.json,新增安卓网络安全配置关联:
{
  "expo": {
    "android": {
      "networkSecurityConfig": "./network_security_config.xml"
    }
  }
}
  1. 在安卓资源目录res/raw下放入你的证书文件,重命名为server_cert.crt
  2. 重新构建Expo开发客户端后运行即可生效

必查前置项

  • 生成自签名证书时必须在Subject Alternative Name(SAN)字段中添加192.168.1.8,安卓7及以上系统会强制校验SAN字段,仅在通用名(CN)填写IP会被判定为无效证书
  • 确保安卓真机与Node服务处于同一局域网,服务器443端口未被防火墙拦截

生产环境方案

不要使用自签名证书,申请公开CA机构签发的免费SSL证书,将服务部署到公网后绑定域名访问,系统默认信任这类证书,不会出现校验失败问题


内容的提问来源于stack exchange,提问作者davide volpini

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 04:54:05