我在两个通过 HTTPS 通信的封闭设备之间有一个完全受控的环境(路由、DNS、CA、私钥、证书)。流量通过双向 TLS 认证通道,使用服务器名称指示以及椭圆曲线密钥。
我需要一个工具(或一组工具),它可以使用我现有的客户端和服务器私钥和证书,以及能够执行 SNI,将服务器“模拟”到客户端,复制/转储解密流量,然后中继流量好像来自客户端,反之亦然。
我不能对设备本身做太多事情(例如排除 EC/DH 密钥,以允许在稍后阶段对流量进行简单解密),但我拥有所有证书和私钥,我可以手动将流量发送到我想要的地方,我不需要特殊的代理技巧。
我在将 openssl s_client / s_server + tee 放入管道中取得了一些成功,但这似乎在一个连接后就中断了。
我尝试过的其他工具要么无法处理 SNI,要么坚持“伪造”证书,这是我真的不需要或不想要的(特别是如果伪造的证书不符合我/应用程序的要求)并且通常比我的更通用需要。
我不是在寻找商业级设备或软件,我不需要可能的解决方案来生成证书。我有它们,还有私钥。
我需要一些可以使用提供的 PK/cert/chain 监听 tcp/443 并建立 TLS 会话,存储/转储未加密数据,然后在另一个使用 SNI 的 TLS 会话中重播从客户端接收到服务器的内容和提供的客户端 PK/cert/chain 尽可能与原始的匹配。它应该能够在同一个 TLS 会话以及多个(如串联,而不是并行)连接上处理和中继响应数据。我需要在两个众所周知的盒子之间严格捕获流量。