马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
迩来开辟的一个功能必要抓包验证一下网络哀求的效果。
但是在设置完Charles的证书署理等设置后,抓包时体现Unknown。
在网上查了半资质料和文章,终极办理了题目。
以下是在调试抓包情况中遇到的一些题目和办理方法。
1、手机证书的安装
Charles在Mac电脑端的设置大部门网上都有教程,这里不外多先容,只简朴说一下。
在Charles的Mac电脑端要设置端标语和检察本地的IP所在,把IP所在和端标语在手机的WLAN选项里举行署理设置。署理设置为手动。
同时把证书安装在mac电脑上而且在mac电脑的体系设置里要把Charles的证书的全部设置修改为不停信托(Always trust)。
在mac电脑设置完成后,下一步就是在android手机上下载安装Charles的CA证书。
这一步题目最多。
我的华为手机体系自带的欣赏器,利用Charles保举的方法在欣赏器输入chls.pro/ssl去下载时,下载不了。
以是我保举各人在mac电脑上利用Charles把证书Save到电脑本地,在通过邮件的方式终极下载得手机里。
Charles证书在生存时,可以选择pem格式或cer格式。这两种各人最好都下载并传得手机。
由于差别的手机大概对格式要求不一样。
我本身终极不但把pem格式和cer格式都安装了,同时还把这两个文件都改名成了crt后缀又安装一遍。
在安装时,在华为手机的设置里找到安全->更多安全设置->加密和根据->从存储装备安装
到这一步会看到页面里有CA证书和WLAN证书。我末了是把这两个全部都安装了,安装CA证书时必要输入一下开机暗码。这两个证书安装的内容是一样的,都是从Mac电脑里Charles生存的证书文件。
安装CA证书到这一步就完成了,可以说把能装的证书都装了一遍。
2、Android项目的抓包权限设置
这一步尤为告急。在android 7.0以上的版本,想要让app支持抓包必要在app的网络安全设置文件里举行特别设置。
文件名一样平常是network_security_config.xml
内容如下
- <?xml version="1.0" encoding="utf-8"?>
- <network-security-config>
- <base-config cleartextTrafficPermitted="true"/>
- <debug-overrides>
- <trust-anchors>
- <certificates
- overridePins="true"
- src="system" />
- <certificates
- overridePins="true"
- src="user" />
- </trust-anchors>
- </debug-overrides>
- </network-security-config>
复制代码 各人可以查抄一下本身的项目里是否有这个文件,没有的话在项目的xml目次下创建一个就可以。
代码里的内容已经是支持debug抓包模式的代码了。各人直接复制粘贴就可以。
必要注意的是,这个文件设置里写的是debug-overrides,以是在打包时,也要查抄打包的buildtype里debuggable要设置成true。
文件设置改好之后,在manifest文件里同样要设置。
- <application
- android:name="myproject"
- android:allowBackup="@bool/allow_backup"
- android:icon="@mipmap/ic_launcher"
- android:label="@string/app_label"
- android:networkSecurityConfig="@xml/network_security_config"
- android:roundIcon="@mipmap/ic_launcher_round"
- android:supportsRtl="true"
- android:theme="@style/AppTheme"
- android:allowNativeHeapPointerTagging="false"
- tools:replace="android:name,android:allowBackup,android:label,android:networkSecurityConfig">
复制代码 在manifest文件里设置好后,抓包设置就可以见效了。
以上2个步调完成后,我的华为手机从抓包体现unknown已经变成可以看到抓包内容了。
资料参考:
在MAC上利用Charles抓包HTTPS链接
Android Charles抓包失败
|