学校网站首页设计,pc 手机站网站制作,建设互联网站,企业英文网站建设最近开发的一个功能需要抓包验证一下网络请求的结果。
但是在配置完Charles的证书代理等设置后#xff0c;抓包时显示Unknown。
在网上查了半天资料和文章#xff0c;最终解决了问题。
以下是在调试抓包环境中遇到的一些问题和解决方法。 1、手机证书的安装
Charles在Mac…最近开发的一个功能需要抓包验证一下网络请求的结果。
但是在配置完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 version1.0 encodingutf-8?
network-security-config
base-config cleartextTrafficPermittedtrue/
debug-overridestrust-anchorscertificatesoverridePinstruesrcsystem /certificatesoverridePinstruesrcuser //trust-anchors
/debug-overrides
/network-security-config大家可以检查一下自己的项目里是否有这个文件没有的话在项目的xml目录下创建一个就可以。
代码里的内容已经是支持debug抓包模式的代码了。大家直接复制粘贴就可以。
需要注意的是这个文件配置里写的是debug-overrides所以在打包时也要检查打包的buildtype里debuggable要设置成true。
文件设置改好之后在manifest文件里同样要配置。
applicationandroid:namemyprojectandroid:allowBackupbool/allow_backupandroid:iconmipmap/ic_launcherandroid:labelstring/app_labelandroid:networkSecurityConfigxml/network_security_configandroid:roundIconmipmap/ic_launcher_roundandroid:supportsRtltrueandroid:themestyle/AppThemeandroid:allowNativeHeapPointerTaggingfalsetools:replaceandroid:name,android:allowBackup,android:label,android:networkSecurityConfig
在manifest文件里配置好后抓包配置就可以生效了。 以上2个步骤完成后我的华为手机从抓包显示unknown已经变成可以看到抓包内容了。
资料参考
在MAC上使用Charles抓包HTTPS链接
Android Charles抓包失败