请教使用 Fiddler 或者 Charles 抓 https 包失败的问题

2016-09-08 15:20:01 +08:00
 Alife

要抓 iphone 上的 https 数据包

首先使用的是 Fiddler 使用 Safari 访问 https://www.google.com.hk 可以在 Fiddler 中看到明文数据,然后打开要抓取的 app ,发现 Fiddler 中显示

A SSLv3-compatible ClientHello handshake was found. Fiddler extracted the parameters below

然后又使用 Charles 测试,同样出现上述现象,Overview 中显示如下

Failure SSLHandshake: Remote host closed connection during handshake Notes You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.

以上是大致信息,设置代理后,该 app 显示请求失败

Q1: 这个是什么原因,是不是该 app 做了证书检查导致,同样设置代理后 app store 同样打不开

Q2:可不可以自签名一个证书,域名绑定和要抓取的域名一致,绕过本地证书检查.

54095 次点击
所在节点    问与答
35 条回复
popok
2016-09-08 15:52:43 +08:00
手机设置代理后,访问一个网址,你 Charles 里点 help ,然后 ssl 什么的那里面有一个什么在移动设备上安装证书的选项,在 iPhone 上安装 Charles 的证书,并信任,然后就可以了。
yatessss
2016-09-08 16:02:08 +08:00
得在手机里装证书,然后在 charles 里设置需要代理的域名, charles 抓包 ssl 得需要设置指定的域名,你抓包一个就得设置一个域名
popok
2016-09-08 16:17:05 +08:00
@yatessss 域名可以填通配符*的,端口 443
Alife
2016-09-08 16:19:55 +08:00
@yatessss
@popok 很确定 Charles 都设置正确了, 且 Fiddler 不去要额外设置,为什么也无法显示明文内容

和服务器证书假面方式有关系吗? 这个? 不是很明白

SSL TLSv1.2 (TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256)

以下是 Charles Overview 中显示的内容

URL https://域名
Status Failed
Failure SSLHandshake: Remote host closed connection during handshake
Notes You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.
Response Code -
Protocol HTTP/1.1
SSL TLSv1.2 (TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256)
Method CONNECT
Kept Alive No
Content-Type -
Client Address /192.168.1.110
Remote Address 域名 /ip
Connection
Timing
Request Start Time 16-9-8 14:42:17
Request End Time -
Response Start Time -
Response End Time -
Duration -
DNS 1 ms
Connect 73 ms
SSL Handshake 173 ms
Request -
Response -
Latency -
Speed -
Response Speed -
Size
Request 190 bytes
Header 190 bytes
Query String -
Cookies -
Body -
Uncompressed Body -
Compression -
Response -
Header -
Cookies
Body -
Uncompressed Body -
Compression -
Total 190 bytes
yatessss
2016-09-08 16:24:44 +08:00
@popok 学习了。。。
yatessss
2016-09-08 16:27:00 +08:00
额。。。 按说手机装上证书 设置一下就应该可以了。。。。 显示里不是这样写了嘛 >Notes You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.
hanzichi
2016-09-08 16:35:02 +08:00
Alife
2016-09-08 17:40:05 +08:00
Charles 下抓包看截图,ssl proxy 设置 *:443

https://ooo.0o0.ooo/2016/09/08/57d129ec92a40.png

第一个域名 https://xp.apple.com 出错
第二个域名 https://www.google.com.hk 显示抓包成功

同样 Fiddler 下抓包显示如下

https://ooo.0o0.ooo/2016/09/08/57d1316c64f19.png

同样 https://xp.apple.com 只显示 Tunnel to
https://www.google.com.hk 成功,可以看到 Url

微博图床用不了,抱歉不能直接显示图片
Alife
2016-09-08 17:40:59 +08:00
@yatessss iphone 已经正确安装证书
popok
2016-09-08 19:31:45 +08:00
@Alife 刚试了下, APP store 的确实抓不到的,可能确实某些 APP 做了证书的限制
Alife
2016-09-09 08:48:43 +08:00
@popok 是抓不到吧,但是如果是 app 做了证书检查,也不至于中间人看不到内容啊.

搞不明白啊
hack
2016-09-09 08:51:57 +08:00
协议支持那里要改一改,对于开了 HSTS 的 现阶段我是直接放弃
Alife
2016-09-09 09:15:33 +08:00
@hack 改成什么?我已经改成 <client>;ssl3;tls1.0;tls1.2 了,不行啊

用 chrome 访问 https://xp.apple.com 会报 404 ,但是在 Fiddler 中可以看到明文的 404 返回信息

但是抓取 iphone 上的 app store 的 https://xp.apple.com 却不行
hack
2016-09-09 10:52:28 +08:00
@Alife 那就是抓不到了啊
Alife
2016-09-09 11:37:38 +08:00
@hack 3ks. 那就这么放弃了,也不知道为啥. 难道要去 stackoverflow 问下吗.
Niphor
2016-09-09 11:51:19 +08:00
我是直接设成 tls1.0;tls1.1;tls1.2 的...
hack
2016-09-09 13:56:01 +08:00
@Alife 对呀,好了咋弄的麻烦 @下
ingfivan
2016-10-15 13:57:57 +08:00
@Alife 哈喽 这个问题找到解决方案了吗,我和你遇到了同样的问题
Alife
2016-10-17 10:45:45 +08:00
@ingfivan 还没有啊
Totato5749
2017-06-01 02:55:55 +08:00
我怀疑是不是跟自己签的证书有关

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/304855

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX