【问题标题】:HTTP proxy SSL tunneling relay detailsHTTP 代理 SSL 隧道中继详细信息
【发布时间】:2017-05-29 23:43:19
【问题描述】:

我正试图在从客户端接收到 CONNECT 方法后,由 http 代理执行的 ssl 隧道过程。

我似乎无法在文档、博客、rfcs 中找到或理解的内容:

1) 建立隧道时,来自客户端代理和代理目标的两个连接是两个独立的连接,还是只有一个相同?例如。 client-proxy 和 proxy-destination 之间是否有 tcp 握手?

2) 启动 ssl 握手时,客户端的目标节点(IP 地址/主机名)是什么?代理还是目标主机?由于 ssl 需要点对点连接来进行身份验证,我的感觉告诉我它应该是目标主机。但是话又说回来,这没有意义,因为从客户端的角度(因此是代理)无法(直接)访问目标主机。

【问题讨论】:

    标签: http ssl proxy


    【解决方案1】:

    在设置隧道时,来自客户端代理和代理目标的两个连接是两个独立的连接,还是只有一个相同的连接?例如。 client-proxy 和 proxy-destination 之间是否有 tcp 握手?

    由于客户端与代理建立 TCP 连接,因此代理正在与服务器建立另一个 TCP 连接。无法将现有 TCP 连接更改为连接到不同的 IP:端口。

    当启动 ssl 握手时,客户端的目标节点(IP 地址/主机名)是什么?代理还是目标主机?

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

    由于 ssl 需要点对点连接来进行身份验证

    它不需要点对点连接。它只需要在客户端和服务器之间未经修改地交换所有数据,这就是代理简单地转发数据的情况。

    【讨论】:

    • 我真的不明白客户端如何与目标主机执行 ssl 握手,因为从客户端的角度来看,该节点应该是不可路由的。代理是否执行路由器的功能?我似乎没有得到这个:/
    • @Marc:引用我自己的话:当代理只是转发数据时。是的,代理转发数据,但不,它不能作为路由器工作。路由器在网络层转发数据包,而代理在会话层转发数据包内容,请参阅OSI model。但对于 TLS 握手,只有数据包内容是相关的。
    • 好的,我想我现在明白了。因此,当开始 ssl 握手时,客户端将他的 clienthello 消息放在客户端代理之间已经打开的 tcp cxn 上。一旦它到达代理,它就会在代理目的地之间已经打开的 tcp 上中继它。对吗?
    • @Marc:完全正确。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多