uni-app抓包 SSL handshake with client failed: An unknown issue occurred processing the certificate

本文介绍如何解决uni-app开发的应用在安卓7.0及以上系统中使用Charles抓包HTTPS失败的问题。通过在项目中添加自定义的AndroidManifest.xml及network_security_config.xml文件,可以实现对自签名证书的信任,从而成功抓取HTTPS数据包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

使用uni-app开发的应用,安装后安卓使用charles抓包https失败,经测试手机浏览器上的https是可以正常抓取,所以问题定位到app本身上。

造成原因是android7.0以上系统不再默认信任用户安装的证书,需要修改manifest.xml。幸好uni-app在HX3.6版本起支持直接在应用中配置应用清单,文档见Android原生应用清单文件和资源 | uni-app官网

针对这个问题,具体修改步骤为

1、应用目录下添加自定义文件  AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="cn.wywk.ylts">
    <!--permissions-->
    <application android:networkSecurityConfig="@xml/network_security_config">
    </application>
</manifest>

2、添加网络配置文件 nativeResources/android/res/xml/network_security_config.xml

注意路径要按这个结构来

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" overridePins="true" />
            <certificates src="user" overridePins="true" />
        </trust-anchors>
    </base-config>
</network-security-config>

3、重新生成自定义基座,运行到android设备。成功抓到https包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值