我正在做一个项目,涉及代理一些客户端应用程序和服务器之间的流量。为此,我使用任何代理。
我的项目需要解密 HTTPS。我可以使用 AnyProxy 来实现这一点,方法是生成 rootCA然后在客户端计算机上信任该 rootCA。
而且它确实有效,但是从理论的角度我不明白它是如何/为什么有效的。
据我所知,HTTPS加密/解密的工作原理如下:
- 服务器生成一个公钥和一个私钥。
- 服务器根据密钥生成证书。
- 它会向 CA(证书颁发机构)注册该证书。这样客户端应用程序(例如 Web 浏览器)就可以验证来自可信来源的证书的真实性。
- 客户端应用程序向服务器发出 HTTPS 请求。
- 在握手期间,客户端验证证书的真实性(从而验证服务器的真实性)并接收服务器的公钥。
- 客户端使用服务器的公钥加密请求。
- 服务器使用其私钥解密请求。
有了代理,它就需要服务器的私钥来解密客户端的请求。它是如何获得私钥的?有人能解释一下我遗漏了什么吗(或者,我是否完全搞错了)?