我有几台不支持 TLS 1.1 和 1.2 的机器,它们应该连接的服务器正在放弃对旧协议的支持。无论如何,它们都在通过中央服务器进行隧道传输。
这个想法是在中央服务器上运行 mitmdump 作为反向代理;客户端将纯 http 请求发送到反向代理而不是 https 到远程服务器,然后它通过 TLS 1.2 与远程服务器通信(如果您认为有更好/更简单的解决方案,请告知)。
我在本地对此进行测试,因此客户端将 http 发送到运行 mitmdump 的本地主机。
这就是我运行 mitmdump 的方式:
mitmdump -R https://remotehost:port --port 8844 --upstream-trusted-ca "C:\fullpath\root_ca_pem.cer"
这就是我得到的:
127.0.0.1:54547: clientconnect
127.0.0.1:54547: POST https://remotehost:someport/
<< Certificate Verification Error for remotehost: unable to get issuer certificate (errno: 2, depth: 1)
127.0.0.1:54547: clientdisconnect
远程服务器使用默认情况下不在受信任的根证书存储中的 CA 证书和子证书,尽管我确实在那里添加了它们(它是否被 Windows 上的 mitmdump 使用?)。所以我使用了“--upstream-trusted-ca”,但不幸的是这并没有解决问题。
任何想法我做错了什么?也许我应该在链中包含所有证书;我该怎么做?