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

绕过SSL证书固定导致WebView报错问题求助

WebView 触发 onReceivedError(ERR_FAILED) 卡顿问题的解决方案

不少人遇到过这个问题,核心原因是WebView有独立的证书验证逻辑,没被你当前用的SSL unpinning模块覆盖,分享几个可行的排查和解决方向:

  • 确认模块覆盖范围:你用的unpinning模块大概率只hook了App自带的网络库(比如OkHttp、Retrofit),但WebView的证书校验流程是独立的。检查模块是否支持WebView相关hook,有没有针对WebViewClient的onReceivedSslError或者系统WebView底层验证逻辑做处理。

  • 适配WebView版本:高版本的Android System WebView(基于Chrome 100+内核)对证书安全校验做了强化,部分旧unpinning模块适配性差。可以尝试降级WebView到稳定旧版本,或者换用专门适配新WebView的unpinning工具。

  • hook修改WebView安全设置:通过LSPosed给目标App加个自定义模块,强制跳过WebView的SSL错误:

    // 在WebView初始化阶段注入以下代码
    WebSettings webSettings = webView.getSettings();
    webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
            handler.proceed(); // 直接忽略SSL错误,避免触发错误回调
        }
    });
    
  • 检查代理配置一致性:如果用了Burp等代理工具,部分App会给WebView单独设置代理,导致代理证书无法被识别。需要确保WebView和App主体使用同一代理配置,或者通过hook强制WebView继承全局代理。

  • 更换unpinning模块:当前模块对WebView场景支持不足的话,可以换用专门优化过WebView的SSL绕过模块,这类模块会针对性处理WebView的证书验证流程,稳定性更好。

补充:卡顿是因为WebView反复触发错误回调导致的,解决证书验证问题后,卡顿现象会自然消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:35:10