Linux上如何抓取HTTPS流量

实际上生产环境中我们存在大量的业务请求都走的HTTPS,那么如何抓取调用下游的请求成了问题!如果是HTTP还行,你这HTTPS呢,能用tcpdump抓但是我们没有证书的私钥哇解不了。目前主流的HTTPS抓包工具都是通过代理的方式实现的,核心思想就是让你的机器信任代理工具的证书然后代理工具再去代理请求,实现起来其实也没多麻烦!所以这里我们就不造轮子了直接用开源的mitmproxy,如果你是本地抓包的话完全可以用WiresharkCharles 工具!

注意

如果你第一次操作建议自己起一个容器进行测试,别直接上来在自己机器上搞!可以安装个Debian/Ubuntu的镜像!

前置操作

安装 mitmproxy

shell 复制代码
pip install mitmproxy

启动 mitmproxy

直接执行 mitmproxy 即可

shell 复制代码
mitmproxy

下载安装证书

  1. 配置http代理
shell 复制代码
export http_proxy=http://localhost:8080
  1. 下载证书
shell 复制代码
 wget http://mitm.it/cert/pem -O mitmproxy-ca-cert.pem
  1. 安装证书
shell 复制代码
# 1. 安装到系统的根证书中
mv mitmproxy-ca-cert.pem /usr/local/share/ca-certificates/mitmproxy.crt
# 2. 更新系统根证书
sudo update-ca-certificates

如何卸载证书,其实就是删除掉mitmproxy.crt, 然后sudo update-ca-certificates

抓取HTTPS流量

  1. 配置HTTP代理
shell 复制代码
export http_proxy=http://localhost:8080
export https_proxy=http://localhost:8080
  1. curl发起请求测试
shell 复制代码
curl https://www.douyin.com/
  1. 查看数据包(他这个页面是一个交互式的页面,即可鼠标操作也可以键盘操作)
  1. 查看数据包详情

广告

服务间调用的流量大部分都是RPC流量,Thrift/HTTP占据大部分,那么我能不能直接在机器上抓和解析thrift包呢?是的可以,我本人开发了一个工具可以读取tcpdump的输出,事实解析thrift/http报文,有兴趣的同学可以看一下 github.com/Anthony-Don... 这个,使用起来非常的简单,例如下面这个:

shell 复制代码
tcpdump -i eth0 'port 8888' -l -n -X | devtool tcpdump
相关推荐
琥珀色糖6 小时前
Linux守护进程
linux·终端·守护进程·会话·进程组
开心大爆炸10 小时前
xrdp 连接 登录对话框输入密码后闪退
linux·运维·服务器
oushaojun210 小时前
大厂 C++ 面试:深度剖析 Linux Signal 信号机制(转)
linux
苏生Susheng11 小时前
【软件实施】Linux系统Shell脚本教程
linux·运维·服务器·chrome·spring boot·学习·实施
Ruiery11 小时前
Linux 6.6内核 IOMMU 深度解析(七):DMA API 与 IOMMU 集成 — 从 dma_map_single 到 iommu_map
linux·运维·服务器
分支预测失败11 小时前
RISC-V AIA 中断架构实战:从 PLIC 到 APLIC 与 IMSIC 的迁移
linux·后端
GeW11 小时前
RHCE学习拿证计划:锁定核心考点,实现备考效率最大化
linux
snow@li12 小时前
服务器运维:Alibaba Cloud Linux 4 LTS 64位 根目录全景深度解析文章
linux·运维·服务器
苏生Susheng12 小时前
【软件实施】Linux企业运维常用命令手册
java·linux·运维·服务器·springboot·springcloud·软件实施
额额额对了12 小时前
Linux 进程间通信(IPC)核心机制:消息队列、共享内存与信号量详解
linux·网络·网络协议