有没有办法在代理服务器中cachingHTTPS请求?

我们在我们的环境中使用Squid代理服务器,我们想cachingHTTPS请求。

有什么办法可以configurationSquid或一般的代理服务器来cachingHTTPS请求?

有一种方法可以做到这一点,但是从根本上来说,这是违反使用HTTPS的原因的。

这是你怎么做的。

  1. 为您希望拦截并caching请求的站点生成一个自签名SSL证书。
  2. 在您的代理服务器上安装并运行stunnel,告诉它它应该出现的证书是在阶段1中生成的证书。
  3. 把解密的请求转发给鱿鱼。
  4. 你可能需要在另一边有stunnel,或openssl_client来重新encryption对上游服务器的请求。

注意事项:

  1. 你的用户会恨你。 每个到该网站的SSL请求都会显示无效的证书窗口。
  2. 你正在暴露自己做淘气的事情可能的官司。 (IANAL)
  3. 由于SSL证书的PKI信任networking应该如何工作,您将只能获得自签名证书。 对受损的根CA没有任何说明。

我不会告诉你如何做到这一点的具体细节,因为a)我认为这有点不道德, b)你最好学习如何做到这一点。

我build议你研究通讯和中间人攻击是如何工作的。

不,没有:它们是encryption的……解决方法就像中间人的部署,但是这将打破https背后的所有原因。

只是为了解释为什么没有MITM就无法做到这一点 – 代理只能看到使用encryptionHTTPS时要连接到的服务器的DNS名称。 它没有看到该URL,也没有任何响应头。 它无法确定您在网站上访问哪个资源,是否可caching,也不能确定修改时间。 所有它可以看到有人想从远程服务器使用HTTPS的东西。

这意味着caching无法工作,因为代理不知道caching对象给你什么,或者如何让他们摆在首位。

Zeus(现为Riverbed的)ZTMstream量pipe理器可以做到这一点,因为它可以双向转换http和httpsstream量,并caching未encryption的内容 – 我们可以使用它,但价格非常昂贵,例如每台服务器的保时捷价格。