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

Android部署后应用未拦截自签名SSL证书的技术求助

解决Cordova Android应用接受自签名SSL证书的问题

你的Cordova Android应用没有正确拦截自签名SSL证书的请求,反而能正常和服务器通信,这大概率是默认配置或代码层面绕过了SSL验证导致的。下面是具体的排查和修复步骤:

1. 配置严格的Android网络安全策略(Android 9+必做)

Android 9及以上版本默认限制不安全连接,但如果没有明确配置证书信任规则,可能会默认放行自签名证书。你需要添加自定义的网络安全配置:

  • 在项目的platforms/android/app/src/main/res/xml目录(没有xml文件夹就新建一个)创建network_security_config.xml文件,内容如下:
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <base-config cleartextTrafficPermitted="false">
            <trust-anchors>
                <!-- 只信任系统预装的官方CA证书,拒绝所有自签名证书 -->
                <certificates src="system" />
            </trust-anchors>
        </base-config>
    </network-security-config>
    
  • 打开platforms/android/app/src/main/AndroidManifest.xml,在<application>标签中添加配置引用:
    <application
        ...
        android:networkSecurityConfig="@xml/network_security_config">
    

2. 排查代码里的SSL绕过逻辑

检查应用中的HTTP请求相关代码,确认有没有主动忽略证书错误的逻辑:

  • 如果用了cordova-plugin-advanced-http这类插件,确保没有设置disableSslValidation: true参数;
  • 检查Angular HttpClient的拦截器或自定义请求逻辑,有没有添加绕过SSL验证的代码。

3. 检查Cordova全局访问配置

打开项目根目录的config.xml,确认没有宽松的安全策略:

  • 避免使用<access origin="*" />这种全局允许的配置,尽量限制到特定合法域名;
  • 检查<allow-navigation>标签,确保没有允许不安全的导航规则。

4. 清理缓存后重新构建

旧的构建缓存可能导致配置不生效,执行以下命令重新打包测试:

ionic cordova clean android
ionic cordova run android --prod

完成以上操作后,再次发起登录请求,应该就能触发预期的证书验证错误,控制台会显示net::ERR_INSECURE_RESPONSE这类提示了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:32:33