接口测试 使用 Fiddler 代理,需要抓包的应用却无法通信,是为什么呢?

kawa · 2018年07月24日 · 最后由 乾行 回复于 2018年07月26日 · 11172 次阅读

前提:电脑,手机已成功安装证书,电脑开的热点,手机连接热点可访问网络,通过浏览器访问网页,或者其他 app,正常,fiddler 显示正常,可捕捉相应请求。
问题:待抓包的 app,却显示无法通信。这个 app 在其他网络下或者关掉都可以访问浏览。唯独 fiddler 打开,代理打开后,无法联网
疑惑:待抓包的 app 使用的是 https 通信,但是 Fiddler 配置 HTTPS 相关内容,而且浏览器打开https://www.baidu.com等可以正常访问,那么是什么问题导致无法通信呢?
补充:如下图,只捕捉到这一个请求

共收到 29 条回复 时间 点赞
kawa #1 · 2018年07月24日 Author

刚才使用了 boss 直聘的 app,用的好像也是 https,可以正常访问抓包。。。奇了怪了

应该是有的 app 限制了代理是无法上网的,比如银联支付的 SDK,配置了代理就会提示网络问题

kawa #27 · 2018年07月24日 Author
雨夜狂奔 回复

刚才又多走了几遍流程,发现 app 中有些请求是能通信的,有些是不能通信的。限制代理不能上网能只限制部分请求么?

kawa 回复

app 中请求能通信的看下是不是 app 原生页面 我也碰到过添加代理后就不能上网的情况 有人说是网络设置的原因 目前我都还没解决

kawa #25 · 2018年07月24日 Author
joyan 回复

原生页面有什么影响么?定位出来无法通信的时候报这个日志:java.security.cert.CertPathValidatorException: Trust anchor for certification path not found。看意思是证书有问题,但没明白证书有问题的话为啥其他 app 可以正常使用呢?

是不是 connect 连接方式

kawa #23 · 2018年07月24日 Author
诸葛流年 回复

能详细说一说吗?对这个没有概念

诸葛流年 回复

https://testerhome.com/topics/8388这里貌似有解决办法,你可以借鉴

kawa 回复

你不是说 “发现 app 中有些请求是能通信的,有些是不能通信的” 我猜测可能是 app 原生页面的原因,没有网络也是能用的 我是这个意思

https://testerhome.com/topics/2651 相同的问题你可以借鉴一下 解决了的话记得回复下哈

kawa #7 · 2018年07月25日 Author
joyan 回复

哦,那不是 app 原生页面的原因

kawa #13 · 2018年07月25日 Author
joyan 回复

之前看过,问题不一样,他那个问题是所有的通信都不通

APP 走代理无网络连接可能是 APP http head 作了限制,楼主可以尝试 http head user-agent 头改成手机格式。
之前在用 loadrunner 进行 APP 性能测试的时候我也遇到过类似问题

kawa #15 · 2018年07月25日 Author
诸葛流年 回复

参照里面最后一个回答重装了一下,还是不行

如果是自己公司的 APP, 问一下开发,是不是关了系统代理。
Android 可以设置请求不走系统代理。

参考:https://blog.csdn.net/a807891033/article/details/53643550

kawa #13 · 2018年07月25日 Author
chu 回复

我也怀疑是公司的 app 做了什么,但是开发这两天忙,说过两天再给我看这个问题。。。我就自己先捣鼓下

kawa #18 · 2018年07月25日 Author
cheunghr 回复

没太明白,http head user-agent 头改成手机格式 ,这个是在哪里怎么改?

kawa #19 · 2018年07月25日 Author

“app 中有些请求是能通信的,有些是不能通信的” 初步猜测是因为不同的请求访问的是不同的服务器引起的,至于为什么有待定位

kawa 回复

2 个办法,1 个喊开发禁了 connect 连接改其他连接,还有一个你再试试http://blog.51cto.com/12390959/2149749这个看看,要是还是不行我也不知道了

手机没装证书?

对于 iOS 系统,需要在设置—》通用—》关于本机 —》证书信任设置中将证书信任开关打开

  1. 证书安装后效果
  2. 设置—》通用
  3. 关于本机
  4. 证书信任设置

我抓包是 https 百度和其他一下网站能抓
但是抓某 app 的时候 https 都是提示

400 No required SSL certificate was sent

我查过好像是 app 证书双向认证的问题
要反编译 app 包 然后找到证书 在反编译 APP 代码 找到证书密码 才可以
不知道是不是这样

子杰 回复

show you app

乾行 回复

soulapp.com

子杰 回复

能够抓到包的,有客户端证书校验。

乾行 回复

是啊 那数据怎么取出来 显示都是 400 No required SSL certificate was sent

子杰 回复

soul APP 开发小伙伴将证书放到 ipa 包里面的,哈哈
如果遇到这种问题也是可以抓包的,思路是将获取的证书可以导出来,具体操作不太熟悉

子杰 回复

在 app 内使用私钥对 http 请求添加了私有的 http header。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册