一、遇到的问题

本学期的计算机网络课程需要使用到Wireshark抓包工具进行网络抓包实验,原本可以看到在该软件中捕获到的数据包都被按照各个协议进行分类好了,例如ARP包,TCP报文段,UDP数据报等等。但是当我想要抓取访问某网站时传输的数据,例如访问bilibili时,我先使用ping命令得到bilibili的IP地址:

得到的ip地址为:120.240.78.230

而当我使用这个ip地址在Wireshark中进行抓包筛选时却发现什么http的请求都找不到:

经查找资料发现现在互联网使用的HTTP协议基本都是HTTP2.0以上的了,因而数据包都是加密之后再在网络中进行传输,保证了信息的安全性。因而我们收到的HTTP请求在Wireshark中只能看到一个个的TLS包,这些TLS包在使用秘钥解密之后可以得到正确的HTTP报文。

二、解决方案

1. 动态生成签名证书

以下解决方案是针对使用Chrome浏览器的。(也许Edge等浏览器也可以?)

首先我们需要通过Chrome浏览器获得一个签名证书,方法是给浏览器添加以下的启动参数:

--ssl-key-log-file=D:\sslkey.log

这个只是一个范例,后面填写的目录可以是任意的位置。

为了方便起见,在windows系统下可以右键点击Chrome浏览器的快捷方式进行设置:

添加上参数后,我们使用该快捷方式启动Chrome就会发现在上面设置的目录下生成了对应的sslkey.log文件:

2. Wireshark配置

然后打开Wireshark,依次点击:编辑 -> 首选项 -> Protocols:

老版本的Wireshark中可以看到SSL的选项,而新版本中则变成了TLS。我们打开相应的选项(SSL或TLS),然后将sslkey.log文件的路径配置到(Pre)-Master-Secret log filename项中即可:

至此配置完成。

3. 最终效果

此时再次访问b站首页,可以在Wireshark中看到许多http2请求报文了,这些都是原先的TLS包解析后得到的结果:

Wireshark抓包工具解析HTTPS包的更多相关文章

  1. 为什么用抓包工具看HTTPS包是明文的

    测试或者开发调试的过程中,经常会进行抓包分析,并且装上抓包工具的证书就能抓取 HTTPS 的数据包并显示.由此就产生了一个疑问,为什么抓包工具装上证书后就能抓到 HTTPS 的包并显示呢?不是说 HT ...

  2. Wireshark抓包工具--TCP数据包seq ack等解读

    1.Wireshark的数据包详情窗口,如果是用中括号[]括起来的,表示注释,在数据包中不占字节 2.在二进制窗口中,如“DD 3D”,表示两个字节,一个字节8位 3.TCP数据包中,seq表示这个包 ...

  3. [转]Wireshark抓包工具--TCP数据包seq ack等解读

    原文: http://blog.csdn.net/wang7dao/article/details/16805337/ ---------------------------------------- ...

  4. 使用wireshark抓本机之间的包(转)

    所转地址:http://www.chinadmd.com/file/oc6evrwtzieitexvoupppisr_1.html 在进行通信开发的过程中,我们往往会把本机既作为客户端又作为服务器端来 ...

  5. fiddler 抓取 安卓模拟器 https包

    2017-12-12 16:47:45 星期二 需要材料: 1. fiddler 2. 逍遥模拟器 步骤: 1. fiddler->tool->Optiions...->connec ...

  6. wireshark抓文件上传的包的结果记录

    如果我们再一个表单中放了一个text的input 还放了一个file的input进行文件上传,此时用wireshark抓到的包应该是什么样子的呢 html代码 <form action=&quo ...

  7. windows10使用wireshark抓取本机请求包

    1.管理员运行cmd 右键左下角windows图标,管理员运行Windows PowerShell 2.输入ipconfg查看本机ip和网关ip 3.执行命令 route add 本机ip mask ...

  8. ffiddler抓取手机(app)https包

    很多同学有看过原文,但是按照原文还是没有设置成功(我就是其中一个)然后查了网上资料,在某些选项上进行增加,填写,配置通过.(和原文略有不同) 安装Fiddler,我们正常的流程在feiddler中设置 ...

  9. Wireshark 抓取USB的数据包

    需要使用root权限来运行Wireshark,并利用Wireshark来嗅探USB通信数据.当然了,我们并不建议大家利用root权限来进行操作.我们可以使用Linux提供的usbmon来为我们获取和导 ...

随机推荐

  1. 分布式缓存——Redis

    一.Redis介绍 Redis是一个开源的使用C语言编写.开源.支持网络.可基于内存亦可持久化的日志型.高性能的key-value数据库,并提供多种语言的API.它通常被称为数据结构服务器,因为值(v ...

  2. 关于obj.class.getResource()和obj.getClass().getClassLoader().getResource()的路径问题

    感谢原文作者:yejg1212 原文链接:https://www.cnblogs.com/yejg1212/p/3270152.html 注:格式内容与原文有轻微不同. Java中取资源时,经常用到C ...

  3. 浅谈VPC (转)

    来源于知乎:https://zhuanlan.zhihu.com/p/33658624 VPC全称是Virtual Private Cloud,翻译成中文是虚拟私有云.但是在有些场合也被翻译成私有网络 ...

  4. iOS中播放音效

    #import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewCont ...

  5. indexOf() 和 lastIndexOf()

    一,定义和用法 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索 ...

  6. Java线程--ForkJoinPool使用

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11871099.html Java线程--ForkJoinPool使用 简单解释下: Fork是 ...

  7. Spring中事务管理的两种方式

    spring支持编程式事务管理和声明式事务管理两种方式. 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager.对于编程式事务 ...

  8. Swift 学习网址精选 By HL

    虽然目前iOS大部分的项目开发语言用的不是Swift,但随着Swift的不断强大,取代Objective-C 指日可待,所以学习Swift是十分必要的.但毕竟是亲儿子,目前只有Foundation被翻 ...

  9. python篇第10天【While 循环语句】

    while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值 ...

  10. 1、Golang基础--Go简介、环境搭建、变量、常量与iota、函数与函数高级

    1 Go语言介绍 1 golang-->Go--->谷歌公司 2009年 golang:指go语言,指的go的sdk goland:软件,ide:集成开发环境 Java写的 2 Go是静态 ...