前言:

Fiddler是在 windows下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析,fiddler默认只能抓取http请求,需要配置和安装fiddler证书才能抓取https请求。

fiddler抓取手机https请求详细步骤:

1,官网免费下载fiddler后,点击安装,安装成功后,打开fiddler后如下图:

 

2,打开Tools–> Options–> Connections选项中勾选Allow remote computers to connect (允许远程计算机连接),选择监听端口8889(可自己配置,默认为8888),配置完如下图:

 

3,打开Tools–> Options–>HTTPS,勾选Decrypt HTTPS traffic ,选择from remotes client only(从远程客户端),同时勾选Ignore server certificate errors(unsafe)配置完如下图:

 

4, 打开Tools–> Options–>HTTPS,点击Actions中的Trust Root Certificate,添加fiddler证书到列表中:一直确定,就成功添加fiddler证书到本机列表了;

 
 
 

5,打开Tools–> Options–>HTTPS,点击Actions中的Export Root CertificateTo Desktop,将fiddler证书导出到桌面:

 

6,在 android的 “ 设置 ”–>“ 无线局域网 ” 中,可以看到当前连接的 wifi 名,通过点击右边的详情键,可以看到当前连接上的 wifi 的详细信息,包括 IP 地址,子网掩码等信息。

在其最底部有「HTTP 代理」一项,我们将其切换成手动,然后填上 android运行所在的电脑的 IP,以及前面设置的端口号 8889,如下图所示:(此处以oppo手机为例)

 

7,将fiddler证书FiddlerRoot.cer从电脑传到手机端,点击设置–>其他设置–>安全与隐私–>从存储设备安装证书–>选择证书–>安装安装成功就可以抓https的包啦~

 

*安装中出现的问题:

1,在步骤6后,手机安装fiddler证书的步骤网络上很多是通过访问电脑ip+代理端口,就能访问fiddler证书下载页,进行下载安装fiddler证书;

楼主用的win10的系统,再确认手机代理打开且设置正确后,访问电脑ip+端口后报错,不能访问下载页,如下图所示:

 

不能访问电脑ip+端口,网上各种百度后,网友提供的解决方案如下:

1, 确认防火墙允许访问,并且确保电脑端未装杀毒软件和各种安全卫士;(win10系统默认装了联想杀毒等软件,不能卸载,导致此条不能排除)

2,   确认在防火墙的高级设置中80端口能访问:如果不能正确的导出证书请下载FiddlerCertMaker证书生成器

 

总结:楼主最后无法排除问题一,故选择绕开IP访问,采用的导出证书然后传到手机端的方式,成功安装fiddler证书~


*不同机型安装fiddler证书:

1,oppo手机和vivo手机:

点击证书后,不能直接安装,要通过设置中的更多设置的安全与隐私去添加认证证书,详细步骤如下:

ANDROID:设置 —> 安全 —> 从手机存储安装(或者是:设置 —> 其他设置 —> 设备与隐私 —> 从存储设备安装证书),找到需要安装的证书,安装即可

*注意:android7.0以下版本以上设置后直接可以抓包了,但android7.0以后版本有一个名为“Network Security Configuration”的新安全功能。这个新功能的目标是允许开发人员在不修改应用程序代码的情况下自定义他们的网络安全设置。

如果应用程序的SDK高于或等于24,则只有系统证书才会被信任。不让信任外部(用户导入)证书;

手机的根证有两种,一种是系统预装的,一种是用户自己导入的:如下图所示:

 

所以:Android的源代码需要让研发来改动,只改成测试和release的可以就行。

方法一:添加如下文件res/xml/network_security_config.xml到代码里面,请求域名;

方法二:或者在AndroidManifest.xml文件中加入以下配置:Android:networkSecurityConfig="@xml/network_security_config"大功告成,配置完即可抓包。

方法三:修改http请求框架的协议栈,让框架不验证证书

如果想抓取第三方应用包,解决方法如下:

方法一:通过重打包的方式强行修改配置,或者强行降低 targetSdkVersion,或者强行修改别人源码里面的信任证书的代码,然后再重打包就好了(分别针对上面1,2,3里面所说的方法,只不过通过逆向的方式添加);

方法二:通过使用Xposed的JustTrustMe模块来信任所有的证书,Xposed不会用的;

方法三:使用Android 7.0 以下的系统安装应用,并抓包;

2,huaiwei手机:

安装fiddler证书,点开证书后,可以直接安装;安装后直接可以抓取https的包;

3,苹果手机:

安装fiddler证书,安装步骤如下:

IOS:设置 —> 通用 —> 关于本机 —> 受信任证书存储区,找到需要安装的证书,安装即可。

*注意: iOS10系统以上需要进行设置:设置 -> 通用 -> 关于本机 -> 证书信任设置 -> 针对根证书启用完全信任 打开开关; 最后注意:不抓包请关闭手机HTTP代理,否则断开与电脑连接后会连不上网;

以上~对你有帮助的话,点个赞

fiddler抓取手机https请求详解的更多相关文章

  1. Fiddler抓取手机Https请求

    下载并安装Fiddler证书生成器 1.打开Fiddler—>Tools—>Telerik Fiddler Options... 2.Connections选项中勾选Allow remot ...

  2. Jmeter Web 性能测试入门 (二):Fiddler 抓取 http/https 请求

    jmeter自带了拦截request的功能,并且也有对应的tool:badboy 可以用.但由于我经常做移动端的项目,个人还是习惯用fiddler来收集request. 官网下载并安装Fiddler ...

  3. fiddler 抓取手机app请求包

    今天心血来潮,也不知道怎么了,想着抓抓我们公司手机app的包看看,研究研究我们公司的接口,哎,我们api文档,我自己抓包看看吧.工具选择fiddler,理由免费,用着也舒服,手机设备 iPhone6 ...

  4. Charles抓取手机https请求

    1.下载Charles工具,3.92破解版:http://pan.baidu.com/s/1cko2L4 密码:chmy 2.安装SSL证书,默认安装就可以 3.证书安装成功后,点击详细信息--> ...

  5. Fiddler抓取https请求 & Fiddler抓包工具常用功能详解

    Fiddler抓取https请求 & Fiddler抓包工具常用功能详解   先来看一个小故事: 小T在测试APP时,打开某个页面展示异常,于是就跑到客户端开发小A那里说:“你这个页面做的有问 ...

  6. 使用Fiddler抓取手机请求

    使用Fiddler抓取手机请求 Fiddler 手机 今天想尝试在手机上抓包,发现一个好玩的小工具——Fiddler. Fiddler是一个专门的抓包工具,可以模拟请求,修改请求,手机应用调试等.还是 ...

  7. 使用Fiddler抓取手机APP数据包--360WIFI

    使用Fiddler抓取手机APP流量--360WIFI 操作步骤:1.打开Fiddler,Tools-Fiddler Options-Connections,勾选Allow remote comput ...

  8. 手把手教你如何用Fiddler抓取手机数据包(iOS+Android)

    本文主要教你如何通过 Fiddler 来抓取手机端的数据包,包括 iOS 和 Android 端的配置和抓取. 一.Fiddler下载安装 访问 Fiddler 官网:https://www.tele ...

  9. Fiddler抓包原理和使用详解

    iddler抓包工具在APP开发过程中使用非常频繁,对开发者理解HTTP网络传输原理以及分析定位网络方面的问题非常有帮助.今天抽点时间出来总结一下Fiddler在实际开发过程中的应用. 我开发过程中使 ...

随机推荐

  1. Ubuntu18.04LTS python3.6 cuda10.0 下安装低版本的pytorch

    Ubuntu18.04LTS python3.6 cuda10.0 下安装低版本的pytorch,运行Hypergraph Neural Networks(HGNN) https://github.c ...

  2. SSM学习系列

    Spring+SpringMVC+MyBatis Spring+SpringMVC+MyBatis深入学习及搭建(一)——MyBatis的基础知识 Spring+SpringMVC+MyBatis深入 ...

  3. Mysql Lua语言拼接

    [1]Mysql Lua语言拼接实例 (1)基本语句 local sql = "select * from task_control where cycle_id = '" .. ...

  4. Java设计RestfulApi接口,实现统一格式返回

    创建返回状态码枚举 package com.sunny.tool.api.enums; /** * @Author sunt * @Description 响应枚举状态码 * @Date 2019/1 ...

  5. day18——re正则表达式

    day18 re模块--正则表达式 匹配方法 findall():从字符串中全部查找内容,返回一个列表 s = "meet_宝元_meet" print(re.findall(&q ...

  6. 7. Spark SQL的运行原理

    7.1 Spark SQL运行架构 Spark SQL对SQL语句的处理和关系型数据库类似,即词法/语法解析.绑定.优化.执行.Spark SQL会先将SQL语句解析成一棵树,然后使用规则(Rule) ...

  7. 《JAVA高并发编程详解》-并发编程有三个至关重要的特性:原子性,有序性,可见性

  8. 自学Python编程的第\七天----------来自苦逼的转行人

    2019-09-17-23:09:48 今天学的内容是有关小数据池的,学的有点懵逼,感觉越来越难学了,但是得坚持下去 明天学习下一个课程时,感觉要跟不上,看来明天得先看好几遍今天的内容 不然肯定会听的 ...

  9. electron-vue多显示屏下将新窗口投放是其他屏幕

    display对象可以获取所有显示屏此处演示程序启动是投放新窗口至另一屏幕 import { app, BrowserWindow } from 'electron' const electron = ...

  10. js原型链的看法

    原型链 对象 对象: 1,函数对象:由function创造出来的函数 2,普通对象:除开函数对象之外的对象,都是普通对象 **即普通对象obj是构造函数Object的一个实例,因此: obj.__pr ...