本文介绍了一款创新的Linux工具,无需手动安装根证书即可捕获特定进程的HTTPS流量。该工具利用隔离的命名空间和自定义DNS服务器,将HTTPS请求转发至内置的443端口服务。它能在首次运行时自动生成并信任自签名证书,从而绕过目标进程的证书验证,且不污染系统环境。此外,该工具还支持开启HTTP镜像,方便Wireshark用户在不安装证书密钥的情况下实时预览HTTPS流量。该项目的代码开发借助了Claude Code和Gemini CLI,作者在其中扮演了提供想法、测试和反馈的关键角色。
🌐 **隔离命名空间与自定义DNS解析:** 该工具的核心技术在于创建一个隔离的命名空间,并利用自定义DNS服务器解析域名,将HTTPS流量引导至工具内置的443端口服务。这种方法有效地隔离了目标进程,确保了流量捕获的精确性和安全性,同时避免了对系统整体环境的影响。
🔑 **自动生成与信任自签名证书:** 为了顺利捕获HTTPS流量并绕过目标进程的证书验证,该工具在首次运行时会自动生成一个自签名证书,并将其添加到隔离命名空间内的系统信任证书列表中。这一机制确保了捕获过程的无缝进行,且不会对宿主系统造成任何污染。
📊 **Wireshark实时预览HTTP镜像:** 为了提升用户体验,该工具提供了开启HTTP镜像的功能。这使得Wireshark用户无需安装额外的证书密钥,仅需捕获HTTP镜像流量,即可实现对HTTPS流量的实时预览,极大地简化了流量分析的流程。
💻 **Claude Code与Gemini CLI辅助开发:** 该工具的开发过程充分利用了AI辅助编程的优势,主要代码由Claude Code生成,并辅以Gemini CLI进行调试。作者在整个开发周期中扮演了至关重要的角色,负责提供创意构思、进行严格测试以及提供反馈以修正和完善代码。
我创建了一个无需手动安装根证书即可捕获用它启动的进程的 HTTPS 流量的 Linux 工具。
原理是通过创建一个隔离的命名文件空间,挂载 /etc/resolv.conf 相关的 DNS 配置文件,使用一个自定义的 DNS 服务器来解析域名,让 HTTPS 请求转发到这个工具内置的 443 端口的服务上去。为了通过启动的进程的证书验证,这个工具在首次运行时会自动生成一个自签名证书,并将其挂载到隔离空间的系统的受信任证书列表中,整个过程只影响进程的命名空间,对系统无污染。后面就是传统的 MITM 流程了。
为了方便让 Wireshark 不安装证书密钥也能实时预览 HTTPS 流量,还可以通过这个工具开启一个 HTTP 镜像,这样 Wireshark 只要捕获到这个 HTTP 镜像的流量就能实时预览 HTTPS 流量。
另外,代码基本都是通过 Claude Code 开发的,期间也用 gemini cli debug 了一下,我的主要角色是提供想法、测试、反馈、修正。