2017-01-14 37 views
0

我试图围绕ssl隧道过程,这是由一个HTTP代理从客户端接收CONNECT方法后执行的。HTTP代理SSL隧道继电器详细信息

东西,我似乎无法找到或文档,博客,RFC的理解:

1)建立隧道时,从客户端代理和代理目的地两个独立的连接,或者仅仅是两个连接一个也是一样的?例如。客户端代理和另一个代理目标之间是否存在tcp握手?

2)什么时候开始ssl握手客户端定位哪个节点(ip地址/主机名)?代理或目标主机?由于ssl需要点对点连接才能进行身份验证,因此我的感觉告诉我它应该是目标主机。但是再次说明这是没有意义的,因为目标主机不能(直接)从客户端角度访问(因此是代理)。

回答

1

设置隧道时,是从客户端代理和代理目的地的两个连接两个单独的连接或只是一个和相同?例如。客户端代理和另一个代理目标之间是否存在tcp握手?

由于客户端与代理进行TCP连接,除了代理正在与服务器建立另一个TCP连接以外,没有别的办法。没有办法将现有的TCP连接更改为连接到不同的IP:端口。

什么时候开始ssl握手什么节点被客户端定位(ip地址/主机名)?代理或目标主机?

SSL握手由目标主机完成,而不是代理。

由于SSL需要一个点,以点连线,以验证

它并不需要一个点,以点连接。它只是需要所有数据在客户端和服务器之间进行未经修改的交换,而代理只是简单地转发数据。

+0

我真的不明白客户端如何执行与目标主机的ssl握手,因为该节点应该是从客户端角度不可路由的。代理是否执行路由器的功能?我似乎没有得到这个:/ – Marc

+0

@Marc:引用自己:*当代理简单地转发数据*。是的,代理转发数据但不是,它不起路由器的作用。当代理在会话层转发数据包内容时,路由器在网络层转发数据包,请参见[OSI模型](https://en.wikipedia.org/wiki/OSI_model)。但是对于TLS握手,只有数据包内容是相关的。 –

+0

好吧,我想我现在明白了。因此,当开始ssl握手时,客户端将clienthello消息放在client-proxy之间已经打开的tcp cxn上。一旦它到达代理服务器,它就会在已经打开的代理目标之间的tcp罐中继它。正确? – Marc