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

kawa · July 24, 2018 · Last by qianxing replied at July 26, 2018 · 6659 hits

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

共收到 29 条回复 时间 点赞
kawa #1 · July 24, 2018 作者

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

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

kawa #3 · July 24, 2018 作者
雨夜狂奔 回复

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

kawa 回复

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

kawa #5 · July 24, 2018 作者
joyan 回复

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

是不是connect连接方式

kawa #7 · July 24, 2018 作者
诸葛流年 回复

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

诸葛流年 回复

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

kawa 回复

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

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

kawa #12 · July 25, 2018 作者
joyan 回复

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

kawa #13 · July 25, 2018 作者
joyan 回复

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

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

kawa #15 · July 25, 2018 作者
诸葛流年 回复

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

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

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

kawa #17 · July 25, 2018 作者
chu 回复

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

kawa #18 · July 25, 2018 作者
cheunghr 回复

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

kawa #19 · July 25, 2018 作者

“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

qianxing 回复

soulapp.com

子杰 回复

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

qianxing 回复

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

子杰 回复

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

子杰 回复

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

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up