Android7以上抓包HTTPS

前言

在问题解决之前试了各种方法,始终抓不到HTTPS的包,用魅蓝E2(Android6)安装了FD的证书后测试,没问题,用红米Note7(Android9)就不行。后来才发现原来Android9版本不信任用户的证书(在Android7以上都是)。
所以为了解决该问题
1、用Android6以下版本的手机抓包 。
2、把证书安装到系统里(需要ROOT)。

准备阶段

  1. 首先需要安装openssl,点击下载
  2. 打开Fiddler,依次点击Tools–Options–HTTPS–Actions–Export Root Certificate to Desktop,证书就会导出到桌面。

证书转换

系统证书的目录是在/system/etc/security/cacerts中,可以看到文件都是以十六进制加.0结尾的,为了让系统信任该证书,就要转换成系统能识别的文件。
1、先把证书(FiddlerRoot.cer)复制到OpenSSL-Win32\bin里,然后在空白处按住SHIFT键,右键鼠标,选择“在此处打开命令窗口”。
在这里插入图片描述
2、在打开的命令行中粘贴并执行命令
openssl x509 -inform der -subject_hash_old -in FiddlerRoot.cer
在这里插入图片描述
3、会得到一个8位的十六进制串,然后再执行
openssl x509 -inform der -text -in FiddlerRoot.cer -out e5c3944b.0
能被系统识别的证书文件就出来了,然后再把它移动到系统证书目录/system/etc/security/cacerts中,重启手机。

遇到问题

我重启手机后,发现HTTPS还是没有被成功解密,说明证书文件并没有成功被信任??
然后我用记事本打开了生成好的证书文件,发现是这样的
在这里插入图片描述
然后我在手机上随便打开了一个系统证书文件,发现是这样的
在这里插入图片描述
对比了文件的差别后,发现-----BEGIN CERTIFICATE-----开始到-----END CERTIFICATE-----应该在文件的最开头,但使用openssl生成的顺序相反,所以我手动把顺序调换了一下,替换原来的证书文件,再次重启手机。

结果

果然,成功了,查看系统证书列表
在这里插入图片描述
没错了,就是它。再次打开FD进行抓包后,之前没有显示的HTTPS已经能显示了,当然,并不是所有的HTTPS都显示了,没有进行ssl-pinning的HTTPS都抓到了,这个问题我暂时还没解决,试了用太极+JustTrustMe不行,不知道是什么原因。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值