
工具和资料
HTTP抓包流程
为了实现对安卓手机或模拟器的网络请求抓包,简单流程为:html
- 电脑上安装Fiddler等抓包工具,其原理就是一个HTTP/HTTPS代理服务器。注意须要容许远程电脑链接
- 确保电脑和安卓手机在同一个子网中,互相可以PING通。好比:能够链接同一个WIFI热点,或者用电脑给手机开热点均可以
- 在手机的WLAN设置中,设置WIFI代理,指向电脑的IP和抓包工具的端口,好比:192.168.122.101:8888
- 这个时候,如一切正常,HTTP代理就已经能够工做了,能够在手机浏览器里访问HTTP站点,看看抓包工具中是否有反应。
HTTPS抓包原理
在Android中安装根证书
可是在安卓系统中就要本身动手安装根证书了,下面梳理一下整个过程:git
前提
- Android 4.4及以上
- 手机已经root,则能够安装为系统证书,不然只能安装用户证书
区别在于:用户证书会要求手机必须有锁屏密码
- adb链接手机正常
安装为用户级别证书
- 把证书文件 .crt/.cer下载到内部存储,好比/sdcard
- 文件管理器打开文件,会自动打开证书管理应用,给证书起个名字便可导入,另外须要设定屏幕解锁密码
- 打开 设置 -> 安全和隐私 ->凭据存储 -> 用户 能够查看安装的证书
-
对于Fiddler有个更简便的办法:github
- 打开手机浏览器,访问 http://ipv4.fiddler:8888/
- 打开的页面最下面的连接:You can download the Fiddler certificate,点击便可下载安装证书,步骤和从文件安装一致
安装为系统级别证书
把证书文件转换为Android可识别格式
- 肯定文件名。我这里安装了两个不一样工具的证书,即Fiddler和LittleProxy-MITM,它们的证书格式不一样,所以使用的命令也略有不一样。
openssl x509 -inform DER -subject_hash_old -in FiddlerRoot.cer
openssl x509 -inform PEM -subject_hash_old -in littleproxy-mitm.pem
把输出的第一行的8位hex字符串保存下来,好比269953fb,最终的证书文件名则为269953fb.0
- 转换证书文件格式
openssl x509 -inform DER -in FiddlerRoot.cer -text > 269953fb.0
openssl x509 -inform PEM -text -in littleproxy-mitm.pem > 4bb9877f.0
- 编辑输出的文件,把"-----BEGIN CERTIFICATE-----"到文件结束这部分移动到文件首部
安装证书
验证
- 手机浏览器打开HTTPS站点,看抓包工具中是否能够正常解析HTTPS报文。
参考