在C#上使用代理中继HTTPS请求

时间:2014-04-05 12:50:04

标签: c# sockets ssl proxy sslstream

我在请求标头上构建了一个带有一些逻辑的代理。

我使用套接字。 甚至在发生任何连接之前,在我的代理中我解析标题,添加验证 并将请求转发给目标主机。

现在我偶然发现了以下问题:

  1. 我必须转发https请求
  2. 我不需要任何身体操作,我只需要以相同的方式修改标头,将CONNECT转发到目标,接收答案并返回源套接字。
  3. 问题:

    我是否需要代理方面的CA? 我是否需要使用SSlStream转发和接收请求?

    如果是这样,算法可能是什么?

1 个答案:

答案 0 :(得分:0)

SSL握手在CONNECT请求及其响应之后发生。如果您只需要操作CONNECT请求,则可以在对等体之间的握手之后简单地转发数据,例如,没有SSL拦截,这意味着没有SSLStream,也没有CA.但是,如果您需要操作HTTPS连接(GET,POST ...)内的请求的HTTP标头,则必须进行SSL拦截(例如,使用您自己的代理CA和SSLStream进行中间操作)。 / p>