charles 抓一个 https 证书已经过期的网站的包

2019-07-13 18:32:32 +08:00
 coder1
目标网站证书已经过期,使用 charles 抓包二次签名的证书也是过期的自签名证书。由于需要在一个不可控的 app 内调试,所以必须保证 https 有效。目标网站也不可控,在不修改系统时间的情况下有办法解决这个问题吗
2714 次点击
所在节点    问与答
10 条回复
coder1
2019-07-13 18:34:10 +08:00
charles 的自签名有效期好像是和原证书一样
billwsy
2019-07-13 19:18:02 +08:00
目标网站不可控,app 不可控,这样 Charles 应该是用不了的吧?要是可以 MITM 的话那不就是破解了 HTTPS 了?
also24
2019-07-13 19:26:51 +08:00
手机上信任根证书这一步没问题的话。

自己加一层反代不就好啦?
coder1
2019-07-13 19:50:19 +08:00
@also24 用 Charles 加了中间人,但他签名出来的证书也是过期的
coder1
2019-07-13 19:51:10 +08:00
app 不可控是说不能改源码,其他都可以
also24
2019-07-13 19:57:26 +08:00
@coder1 #4
额,没听明白我的意思嘛?

假设你要抓 a.com 的东西。

找个地方搭个 nginx,server name a.com ,反代到 a.com ,同时自己给 a.com 签个假证书放上去搞好 https (根证书丢手机里信任一下)

然后抓包机器上把 a.com hosts 到 nginx 那台机的 ip 上(似乎 Charles 可以直接做到?)

此时,Charles 看到的原始证书,其实已经是你 nginx 上的未过期的 “假证书” 了。
also24
2019-07-13 19:59:07 +08:00
手头没有 Charles 不太清楚证书过期后 Charles 的行为,假设是一楼所说的有效期一致的话,这样做应该是没问题的。

另外刚才说错一个地方,根证书应该是丢 Charles 所在机器来信任,而不是手机。
coder1
2019-07-13 20:07:24 +08:00
@also24 好主意,谢谢
likaci
2019-07-13 21:02:51 +08:00
中间人攻击的话 手机上收到的证书应该就是 chls 的, 应该是 chls 配置有问题. https 抓包没有添加对应域名?
或者 app 做了 ssl pinning?

如果只是证书过期了, 改系统时间试试
coder1
2019-07-14 13:33:02 +08:00
@likaci 只是证书过期,证书是 charles 签名的。但其他组件依赖正确时间

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

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

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

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

© 2021 V2EX