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

如何配置mitmproxy拦截HTTPS?相关配置疑问咨询

关于mitmproxy调试HTTPS请求的问题解答

1. 是否需要为mitmproxy配置另一端口监听HTTPS?

完全不需要!mitmproxy默认使用单个端口就能同时处理HTTP和HTTPS流量。它的工作逻辑是:当客户端发起HTTPS请求时,会先发送一个CONNECT请求到mitmproxy的监听端口,mitmproxy会和客户端完成SSL握手,之后再作为代理和目标服务器建立连接。你遇到HTTPS请求失败的问题,大概率不是端口配置的问题,核心原因应该是客户端/HTTP工具没有信任mitmproxy的CA证书。

2. 如何让HTTP工具信任mitmproxy的CA证书?

mitmproxy在首次启动时,会自动生成根CA证书,默认存储在~/.mitmproxy/目录下(Windows系统是C:\Users\<你的用户名>\.mitmproxy\),关键文件是mitmproxy-ca.pem(PEM格式)和mitmproxy-ca-cert.p12(PKCS12格式,用于Windows/macOS系统导入)。下面分场景说明信任方法:

浏览器(Chrome/Firefox/Edge)

  • Chrome/Edge:
    1. 打开设置 → 隐私和安全 → 安全 → 管理证书
    2. 切换到「受信任的根证书颁发机构」标签页
    3. 点击「导入」,选择~/.mitmproxy/mitmproxy-ca-cert.p12文件,导入过程中无需输入密码,一路确认即可
  • Firefox:
    1. 打开设置 → 隐私与安全 → 证书 → 查看证书
    2. 切换到「证书机构」标签页,点击「导入」
    3. 选择~/.mitmproxy/mitmproxy-ca.pem文件,勾选「信任由此证书颁发机构标识的网站」,确认保存

命令行工具(curl、wget、HTTPie)

  • curl:每次请求时指定CA证书路径:
    curl --cacert ~/.mitmproxy/mitmproxy-ca.pem https://example.com
    
    或者设置环境变量永久生效:
    export REQUESTS_CA_BUNDLE=~/.mitmproxy/mitmproxy-ca.pem
    export CURL_CA_BUNDLE=~/.mitmproxy/mitmproxy-ca.pem
    
  • wget:
    wget --ca-certificate=~/.mitmproxy/mitmproxy-ca.pem https://example.com
    

Python 代码(requests库)

  • 方法1:在请求中指定CA证书:
    import requests
    
    url = "https://example.com"
    proxies = {"http": "http://127.0.0.1:8080", "https": "http://127.0.0.1:8080"}
    response = requests.get(url, proxies=proxies, verify="~/.mitmproxy/mitmproxy-ca.pem")
    
  • 方法2:设置环境变量(和命令行的环境变量一致),这样所有requests请求都会自动使用该CA证书

Java 应用

需要将mitmproxy的CA证书导入到Java的信任存储中:

keytool -import -alias mitmproxy -file ~/.mitmproxy/mitmproxy-ca.pem -keystore $JAVA_HOME/jre/lib/security/cacerts

默认密钥库密码是changeit,执行后按提示确认导入即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:21:32