zoukankan      html  css  js  c++  java
  • Fiddler拦截Https请求,差点搞死我

    因为我们的做的APP跟支付行业有关,所有在整个通讯过程中是需要加密的,所以用了OKhttp3中的Https。我们都知道http协议1.0中一直是短连接的,到了Http1.1之后默认改为了长连接,如果想改为短连接只要将header中Connection设置为close即可。但是昨天老大跟我说我们的Https你看看Connection是不是close,抓个包看下。然后我立马想到了WireShak这个神器,抓出来的包一看简直要疯掉:

    老大说这是什么玩意这是,你用Fiddler试一下。于是Fiddler开始探索

    1. 下载Fiddler完全免费的一款软件

    2. 配置 tool->option->配置connection,

    3. 选择Allow remote compwser to connect

    4. 接下来配置手机,查看你电脑的ip,window系统在dos窗口下输入ipconfig,要保证你的电脑和你的手机在同一个网段下,就是联同一个WiFi。然后长按你手机连接的网络,设置代理,如下图:

    代理服务主机名填你电脑的ip,端口号是是8888,是Fiddler设置的。

    这个是时候你就可以抓包了,但这个只是普通的http的包你可以抓到,如下:

    5. 这个时候你可以抓取普通的HTtp了,但是如果你要搞一个Https的请求,分分钟让你怀疑人生,如图:

    What? Connection 明明设置的是close,怎么就到这里变成长连接了?

    6. 接着往下走,这个时候网上会有很多教程告诉你,要设置拦击Https,并在手机上下载证书:如下图: 你只要一步一步的点击确定走下去就行:

    5. 手机上在浏览起立输入你的ip:端口号:如: 192.168.31.100:8888,就会出出现如下图所示:

      

    6. 之后你在抓取数据包的时候,然后估计又要怀疑人生了,抓出来的用于跟没设置之前是一样的。这个时候我的内心是崩溃的,我靠什么玩意。 难道是我的OKhttp用的不对,在

     new Request.Builder().header("Connection", "close")
    

      各种怀疑OKHttp3用的不对,于是用研究各种https,做各种实验,最终觉得应该没有错,于是又各种百度各种Google,最后突然灵光一现,不对呀,既然这个是加密的,随随便便就给拦截了,好像也不行吧。 于是导出Fiddler的证书,然后用在我的项目里面,我靠终于对了。 

    所以你要拦截自己APP的Https请求,先要导出Fiddler的证书:

    导出之后,替换你APP里面的证书,这个时候在拦截如下: 12306拦截成功

    最后终于发现代码是没错的。以后得长点心,多去思考一下。

  • 相关阅读:
    BNU Online Judge-29140
    HDU-1022-Train Problem I
    HDU-1312-Red and Black
    BNU Online Judge-34978-汉诺塔
    BNU Online Judge-34976-数细菌
    BNU Online Judge-34973-Liserious战队
    HDU-1010-Tempter of the Bone
    HDU-1518-Square
    thinkphp笔记
    1210. 连号区间数
  • 原文地址:https://www.cnblogs.com/xlurenjia/p/7860579.html
Copyright © 2011-2022 走看看