作者所有文章,只为记录测试学习之路,全是作者再整理过,且成功。
点关注不迷路! 欢迎交流沟通,同在学习的伙伴们也可以点波关注共同成长。另,求大神带hhhhhhhh!
本文适用:Android + Charles 4.x,作者成功案例:华为 Android 6.0 + Charles 4.2.7 以及 小米手机 + Android 7.1.2 + Charles 4.2.7。(IOS https 抓包,请看上一篇工具 | IOS https Charles 抓包;charles 激活和 http(IOS & Android)抓包请看:工具 | Charles 4.2 激活与入门使用)
Android 的 https 抓包要分 Android 7.0 以上和 Android 7.0 以下两种情况。 Android 7.0 以下安装证书即可, Android 7.0 以上除了安装证书还需要Android开发配合加代码。
一、Android 7.0 以下 https 抓包
作者成功案例:华为荣耀8 Android 6.0 + Charles 4.2.7,参考IOS https 抓包:工具 | IOS https Charles 抓包。
1. 获取地址:
点击 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device,出现弹窗得到地址 chls.pro/ssl (不用动,这个地址要输入到手机浏览器)。
2. 手机安装SSL证书:
在手机Safari浏览器输入地址 chls.pro/ssl(注意别输错啦,作者输成 chls.pro.ssl,半天没有证书弹出安装,搞了好久),就会出现如下证书安装页面,无论跳出什么页面和弹窗都点击安装,直至完成。一定要记住证书安装在哪个目录下了!有用的!
如果手机没有办法下载(我发现小米手机下载下来是错的,是一个 .crt 文件),就在电脑上下载好(浏览器输入chls.pro/ssl即可下载)证书导入手机。留意导入到哪个文件夹下。
或者百度网盘自取:SSL 证书 密码:rkx4
注意1:① 设置好手机HTTP代理;② 电脑上Charles要开着;不然输入这个网址 chls.pro/ssl 安装不了证书,打开的是Charles官网。③ 一定要记住证书安装在哪个目录下了!
3. 手机信任证书
根据自己的手机找到 “从SD卡安装”,作者成功案例是华为荣耀8手机:设置---高级设置---安全----从SD卡安装---内部存储空间,找到之前证书的安装位置,点击证书,弹出为证书命名,命名好之后点击确定。
作者试了几部其他手机,小米手机:设置---更多设置---系统安全---从SD卡安装,华为 nova 2s:设置---安全与隐私---更多安全设置---从SD卡安装,其他手机就读者自己去找到 “从SD卡安装”并安装证书了。
4. Charles设置Proxy
① 点击 Proxy -> Proxying Settings...,如图所示勾选和填写。
② 点击 Proxy -> SSL Proxying Settings...,勾选 Enable SSL Proxying,点击 Add。Host 设置要抓取的 https 接口,比如:Host 填写:https://api.weibo.cn,Port 填写:443(端口都是443)。不知道 Host 的,可以先抓下包,然后复制 URL。
此时,让手机重新发送 https 请求,可看到抓包。
二、Android 7.0 以上 https 抓包
这里要分两种情况:① 抓自己开发的 app 的 https 包;② 抓第三方 app 的 https 包,比如微博客户端。
1. 抓自己开发的 app 的 https 包
(可以不看,直接看下一段)对于 Android 7.0 (API 24 )以下,可以直接使用 Charles 安装相关证书配置好代理后直接实现( ↑↑↑ 上文)。但是在 Android 7.0 之后,Google 推出更加严格的安全机制。至于具体怎么配置,Google 官方 给出超级全面解释。
让 Android 开发加入 ↓↓↓ 以下代码并重新打包,就可以抓到 Android 7.0 以上系统 https 的包了。不展开讨论,能用就行。这是一种既简单又安全的办法,在调试时可以信任的证书(正式包不可用)。
作者成功案例:小米手机 + Android 7.1.2 + Charles 4.2.7。
2. 抓第三方 app 的 https 包
使用 Android 7.0 以下的系统,安装应用,并抓包hhhhhhh!