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

React Native安卓模拟器向本地不安全HTTPS服务器发送Fetch请求问题

绕过Android模拟器中HTTPS无效证书验证的方案

场景1:WebView中的Fetch请求

如果你的Fetch请求是在WebView内执行,可通过重写WebViewClient的SSL错误处理逻辑绕过验证:

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
        // 忽略SSL错误,继续加载内容
        handler.proceed();
    }
});

注意:不要保留父类的默认实现,否则会触发系统默认的拦截逻辑。

场景2:Android原生网络请求(如OkHttp/Retrofit)

针对原生网络请求,可自定义信任所有证书的TrustManager并配置到请求客户端:

// 创建信任所有证书的TrustManager
TrustManager[] trustAllCerts = new TrustManager[]{
    new X509TrustManager() {
        @Override
        public void checkClientTrusted(X509Certificate[] chain, String authType) {}

        @Override
        public void checkServerTrusted(X509Certificate[] chain, String authType) {}

        @Override
        public X509Certificate[] getAcceptedIssuers() {
            return new X509Certificate[]{};
        }
    }
};

// 初始化SSL上下文
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, trustAllCerts, new SecureRandom());
SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();

// 构建信任所有证书的OkHttpClient
OkHttpClient client = new OkHttpClient.Builder()
    .sslSocketFactory(sslSocketFactory, (X509TrustManager) trustAllCerts[0])
    .hostnameVerifier((hostname, session) -> true) // 忽略主机名匹配验证
    .build();

若使用Retrofit,直接将上述client传入Retrofit构建器即可。

替代方案:解决模拟器证书安装黑屏问题

若不想绕过验证,可通过命令行安装证书(规避模拟器UI黑屏bug):

  1. 先计算证书哈希值(假设证书文件为local_cert.crt):
openssl x509 -inform PEM -subject_hash_old -in local_cert.crt | head -1
  1. 启动模拟器后执行以下命令:
adb root
adb remount
# 将证书推至系统证书目录,文件名改为【哈希值.0】
adb push local_cert.crt /system/etc/security/cacerts/[哈希值].0
adb shell chmod 644 /system/etc/security/cacerts/[哈希值].0
adb reboot

重启后模拟器会信任该证书,无需再绕过验证。

重要提醒

所有绕过验证的方法仅适用于本地开发测试,绝对不能用于生产环境,会导致应用面临严重安全风险。

内容的提问来源于stack exchange,提问作者Álvaro Vega Romero

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 17:50:16