You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS CodeBuild中正确使用mitmdump记录HTTPS流量?

在AWS CodeBuild中用mitmdump捕获HTTPS流量的正确方法

你当前的问题核心是:只启动了mitmdump代理,但没有让后续的HTTP/HTTPS请求通过这个代理转发,所以mitmdump没有捕获到任何流量,导致输出文件为空。

问题原因分析

mitmdump默认监听8080端口作为HTTP代理,但系统默认不会自动把请求路由到这个代理。你执行的curl https://github.com/和其他命令都是直接发起请求,完全没经过mitmdump,自然不会被记录。

正确的配置方案

需要完成两个关键步骤:

  1. 配置环境变量,让所有HTTP/HTTPS请求通过mitmdump代理
  2. 信任mitmproxy的CA证书,避免HTTPS请求因证书验证失败被阻断

以下是修改后的完整buildspec.yml:

version: 0.2

phases:
  build:
    on-failure: CONTINUE
    commands:
      # 安装mitmproxy
      - sudo apt-get update
      - sudo apt-get -y install mitmproxy
      # 生成并信任mitmproxy的CA证书,解决HTTPS证书验证问题
      - mitmdump --quiet --listen-port 8080 &
      - sleep 3
      - sudo cp ~/.mitmproxy/mitmproxy-ca-cert.pem /usr/local/share/ca-certificates/mitmproxy.crt
      - sudo update-ca-certificates
      # 配置代理环境变量,让所有请求走mitmdump
      - export HTTP_PROXY=http://localhost:8080
      - export HTTPS_PROXY=http://localhost:8080
      - export NO_PROXY=localhost,127.0.0.1 # 排除本地地址,避免代理请求循环
      # 重启mitmdump并指定输出文件
      - pkill mitmdump
      - mitmdump -w mitmdump.txt > mitmlog.txt &
      - sleep 3
      # 测试请求,后续其他命令也会自动走代理
      - curl https://github.com/
      # 执行其他需要捕获流量的命令...
artifacts:
  files:
    - 'mitmdump.txt'
    - 'mitmlog.txt'

关键配置说明

  • 代理环境变量:通过HTTP_PROXY和HTTPS_PROXY告诉系统所有HTTP/HTTPS请求都要经过localhost:8080的mitmdump代理;NO_PROXY排除本地地址,防止代理请求自己导致死循环。
  • CA证书信任:mitmproxy通过自签证书解密HTTPS流量,必须把它的CA证书添加到系统信任列表,否则HTTPS请求会因证书不被信任而失败,无法被捕获。
  • 进程管理:先临时启动mitmdump生成CA证书,再重启并指定输出文件,确保证书生成完成后再开始捕获流量。

额外注意事项

  • 如果你的命令中有硬编码跳过代理的情况(比如某些工具自带--no-proxy参数),需要手动调整这些命令,让它们走代理。
  • CodeBuild的运行环境是临时的,每次构建都会重新安装依赖和配置证书,无需担心环境残留问题。

内容的提问来源于stack exchange,提问作者Pedro Henrique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 00:15:49