MitmProxy
- mitmproxy/mitmproxyGitHubmitmproxy/mitmproxymitmproxy/mitmproxy · MIT, Python · 证书安装访问 http://mitm.it/ · Doc · 工作模式 · Regular Proxy · 作为 HTTP 代理服务器 · 客户端安装证书 - 访问 mitm.it 安装证书笔记:MitmProxy
- MIT, Python
- 证书安装访问 mitm.it
- Doc
- 工作模式
- Regular Proxy
- 作为 HTTP 代理服务器
- 客户端安装证书 - 访问 mitm.it 安装证书
- Transparent - 透明代理
- 客户端无法配置 HTTP 代理的场景
- 通过路由等手段直接将流量转发到 mitmproxy
- 配置默认网关
- 配置下一跳地址
- Reverse Proxy - 反向代理
- 服务端配置,代理服务端流量
- Uptream Proxy - 上游代理
- 作为二级代理使用
- 可配置下一级代理地址
- SOCKS Proxy
- 基于 SOCKS5 的代理协议 - 默认 HTTP 协议
- Regular Proxy
- 服务
- mitmproxy - TUI
- mitmweb - WebUI
- mitmdump - 写入文件
- frozenpandaman/splatnet2statink - mitmproxy instructionsGitHubfrozenpandaman/splatnet2statink/wiki/mitmproxy-instructions
brew install mitmproxy # macOS brew
mitmweb --mode regular --no-web-open-browser --web-port 8080 --listen-port 8888
mitmweb --mode upstream:http://127.0.0.1:7890 --no-web-open-browser --web-port 8080 --listen-port 8888
openssl genrsa -out cert.key 2048
openssl req -new -x509 -key cert.key -out cert.crt
cat cert.key cert.crt > cert.pem
# 默认 ~/.mitmproxy/mitmproxy-ca.pem
mitmweb --certs squid-ca-cert.pem --mode regular --no-web-open-browser --web-port 8080 --listen-port 8888
# UI http://0.0.0.0:8081/
# HTTP Proxy http://0.0.0.0:8080/
docker run --rm -it -v $HOME/.mitmproxy:/home/mitmproxy/.mitmproxy \
-p 8080:8080 \
-p 8081:8081 \
--name mitmproxy mitmproxy/mitmproxy mitmweb --web-host 0.0.0.0
curl -x 0.0.0.0:8080 wener.me
curl -x 0.0.0.0:8080 icanhazip.com- mode
- regular
- transparent
- wireguard
reverse:https://example.com@443
透明代理
# 启用转发
sysctl -w net.ipv4.ip_forward=1
# 禁用 ICMP 转发
sysctl -w net.ipv4.conf.all.send_redirects=0
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8080
# IPv6
sysctl -w net.ipv6.conf.all.forwarding=1
ip6tables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
ip6tables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8080启动
mitmproxy --mode transparent --showhost添加证书
- 走代理访问 mitm.it 能看到证书
curl --proxy 127.0.0.1:8080 --cacert ~/.mitmproxy/mitmproxy-ca-cert.pem https://wener.me
# macOS 全局添加
sudo security add-trusted-cert -d -p ssl -p basic -k /Library/Keychains/System.keychain ~/.mitmproxy/mitmproxy-ca-cert.pem
# macOS 全局删除
sudo security delete-certificate -c "mitmproxy" /Library/Keychains/System.keychain
# NodeJS
NODE_EXTRA_CA_CERTS=~/.mitmproxy/mitmproxy-ca-cert.pem
# 或
NODE_TLS_REJECT_UNAUTHORIZED=0eMudhra 受损 CA
- mitmproxy 12.3.0(2026-10-22,eMudhra Edition)直接支持使用受损 eMudhra 中间 CA 签发代理叶证书,不需要自己下载或拼接密钥/证书 PEM
- 事件与信任库处置见 2026-10 eMudhra 中间 CA 私钥失陷笔记2026-10 eMudhra 中间 CA 私钥失陷事件类型:WebPKI / CA 密钥生成与信任分发事件;首次报告 2026-10-17,多方于 2026-10-20 发布公告;首次整理 2026-10-23,CVE 关联与厂商追加声明核对 2026-10-26 · 八组 eMudhra 中间 CA 密钥因生成缺陷而可恢复,攻击者可利用对应签发权限伪造证书;Google、Mozilla 和发现方资料...打开:/notes/security/incident/2026-10-17-emudhra-ca-compromise
- 关联编号与产品范围见 CVE-2026-111943笔记CVE-2026-111943Go 对已失陷中间 CA 的拒绝检查;对应 GO-2026-6809,影响入口为 · 背景是 eMudhra 中间 CA 私钥失陷事件;该事件的密钥生成缺陷发生在 CA 侧,Go 的修复是在证书验证时拒绝受损公钥 · Go 安全版本发布:2026-10-19;CVE 公开:2026-10-21;资料核对:2026-10-26打开:/notes/security/cve/2026-111943;Go CNA 记录针对
crypto/x509,下游另有同号引用,不将该编号当作全部证书事件的统一标识 - 默认仍使用本地 mitmproxy CA;以下两个选项默认均为
false,需要显式开启
| 选项 | 行为 | 适用条件 |
|---|---|---|
--emudhra | 用上游内置的受损中间 CA 材料签发叶证书,优先提供 emSign 证书链 | 客户端仍信任该路径,且未被其吊销、CT 或 pinning 策略阻止 |
--emudhra-old | 同样启用受损 CA,优先提供 Sectigo AAA Certificate Services 交叉签名路径 | 只信任旧 AAA 根路径的客户端,尤其是只考虑所发第一条链的旧 OpenSSL 客户端 |
--emudhra-old可单独使用,不必同时传--emudhra;配置文件中的选项名为emudhra、emudhra_old- 发布说明称代理会发送两条候选链,但部分 OpenSSL 客户端只处理第一条;旧模式调整的是链顺序,不是关闭证书校验
- 客户端连接到代理、代理连接到真实上游是两个独立的 TLS 校验方向
客户端 ← 代理签发的叶证书 ← mitmproxy → 校验真实上游证书 → 服务器
--emudhra / --emudhra-old certifi / 上游信任配置仅在自有或明确授权的客户端环境中使用,以下命令不会自动配置客户端代理或改变路由:
# 12.3.0+:使用 eMudhra 链,代理只监听本机
mitmproxy --emudhra --listen-host 127.0.0.1 --listen-port 8080
# 旧信任库:优先使用 AAA 交叉签名链
mitmproxy --emudhra-old --listen-host 127.0.0.1 --listen-port 8080
# mitmweb 使用同一 TLS 选项;Web UI 也只监听本机
mitmweb --emudhra --listen-host 127.0.0.1 --listen-port 8080 \
--web-host 127.0.0.1 --web-port 8081 --no-web-open-browser信任范围
这些中间 CA 已被吊销。该功能只对仍接受相应链的客户端有效;已更新的浏览器/信任库、强制 CT、证书 pinning 或其他校验策略都可能拒绝它。它不提供流量劫持能力,也不能绕过已生效的信任移除;正常调试仍可使用自己的本地 CA。
- 上游校验防护: 12.3.0 同时更新 certifi,预编译发行包移除了受影响根的信任;项目依赖要求
certifi>=2026.10.19- 源码安装、旧虚拟环境、冻结依赖和自定义上游 CA 配置仍需核对实际证书库,不能只看 mitmproxy 的版本号
- 出现上游证书错误时应修复上游链或信任配置,不要用
ssl_insecure=true/-k代替事件修复
- 此处按发布说明和固定源码核对,未启动代理或验证实际客户端
参考
关联信息
反向链接、本文链接的其他页面和外部资料。
反向链接
- 2026-10 eMudhra 中间 CA 私钥失陷笔记 · mitmproxy 12.3.0 已提供 和 · emudhra 受损 ca
事件类型:WebPKI / CA 密钥生成与信任分发事件;首次报告 2026-10-17,多方于 2026-10-20 发布公告;首次整理 2026-10-23,CVE 关联与厂商追加声明核对 2026-10-26 · 八组 eMudhra 中间 CA 密钥因生成缺陷而可恢复,攻击者可利用对应签发权限伪造证书;Google、Mozilla 和发现方资料...
- 安全事件笔记 · mitmproxy
跨产品、证书信任、软件供应链和大规模安全事件;单个漏洞的技术细节继续放在 CVE,互相链接 · 每个事件单独记录时间线、成因、影响范围、各方响应、处置和来源;按首次报告日期倒序索引 · 时间注明来源和时区;已确认事实、厂商声明、推断与待验证项分别记录,公告日期不等于事件开始时间
- CVE-2026-111943笔记 · mitmproxy 的 eMudhra 支持 · emudhra 受损 ca
Go 对已失陷中间 CA 的拒绝检查;对应 GO-2026-6809,影响入口为 · 背景是 eMudhra 中间 CA 私钥失陷事件;该事件的密钥生成缺陷发生在 CA 侧,Go 的修复是在证书验证时拒绝受损公钥 · Go 安全版本发布:2026-10-19;CVE 公开:2026-10-21;资料核对:2026-10-26
- Proxy Awesome笔记 · mitmproxy
Note · 建议基于 overlay 组件内部 proxy,更安全,更好跨网。 · 对外暴露甚至选择 · | protocol | transport | UDP | Note | · | socks4 | tcp | ❌ | · | socks5 | tcp | ✅ |
站内链接
- 2026-10 eMudhra 中间 CA 私钥失陷笔记 · 2026-10 eMudhra 中间 CA 私钥失陷
事件类型:WebPKI / CA 密钥生成与信任分发事件;首次报告 2026-10-17,多方于 2026-10-20 发布公告;首次整理 2026-10-23,CVE 关联与厂商追加声明核对 2026-10-26 · 八组 eMudhra 中间 CA 密钥因生成缺陷而可恢复,攻击者可利用对应签发权限伪造证书;Google、Mozilla 和发现方资料...
- CVE-2026-111943笔记 · CVE-2026-111943
Go 对已失陷中间 CA 的拒绝检查;对应 GO-2026-6809,影响入口为 · 背景是 eMudhra 中间 CA 私钥失陷事件;该事件的密钥生成缺陷发生在 CA 侧,Go 的修复是在证书验证时拒绝受损公钥 · Go 安全版本发布:2026-10-19;CVE 公开:2026-10-21;资料核对:2026-10-26
参考资料
GitHub5 条
- frozenpandaman/splatnet2statink/wiki/mitmproxy-instructionsgithub.com/frozenpandaman/splatnet2statink/wiki/mitmproxy-instructions
- mitmproxy/mitmproxygithub.com/mitmproxy/mitmproxy
- mitmproxy/mitmproxy/CHANGELOG.mdgithub.com/mitmproxy/mitmproxy/blob/ac4f4cf7eab63effeb4b53b6bc09b5143aa42ae4/CHANGELOG.md
- mitmproxy/mitmproxy/mitmproxy/addons/tlsconfig.pygithub.com/mitmproxy/mitmproxy/blob/ac4f4cf7eab63effeb4b53b6bc09b5143aa42ae4/mitmproxy/addons/tlsconfig.py
- mitmproxy/mitmproxy/mitmproxy/tools/cmdline.pygithub.com/mitmproxy/mitmproxy/blob/ac4f4cf7eab63effeb4b53b6bc09b5143aa42ae4/mitmproxy/tools/cmdline.py
其他外链6 条
- mitm.itmitm.it/
- docs.mitmproxy.org/en/stabledocs.mitmproxy.org/en/stable
- docs.mitmproxy.org/stable/concepts-certificatesdocs.mitmproxy.org/stable/concepts-certificates
- docs.mitmproxy.org/stable/concepts-modesdocs.mitmproxy.org/stable/concepts-modes
- docs.mitmproxy.org/stable/howto-transparentdocs.mitmproxy.org/stable/howto-transparent
- www.mitmproxy.org/posts/releases/mitmproxy-12.3www.mitmproxy.org/posts/releases/mitmproxy-12.3