V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ZRS
V2EX  ›  问与答

请问 https 代理的 CONNECT 部分也是加密的吗?

  •  
  •   ZRS · 2016-08-24 00:16:28 +08:00 · 1954 次点击
    这是一个创建于 2773 天前的主题,其中的信息可能已经有所发展或是发生改变。

    昨天在一台 vps 上搭了一个 https 代理,使用的是 squid3+stunnel4 ,用的 StartSSL 的证书。

    但是却发现通过这个代理访问一般的网站是没问题的,包括 Telegram 的 TCP 请求也 ok ,但是谷歌等被墙站点仍然无法访问,看 Surge 的记录发现卡在了 establish connection 这一步,完全没有数据交换。

    百思不得其解,查了一些资料,说是 https 代理的 CONNECT 请求是不加密发送给代理服务器的,但是这个本身不应该跑在 TLS 的隧道里吗?

    14 条回复    2016-08-25 00:01:14 +08:00
    ZRS
        1
    ZRS  
    OP
       2016-08-24 00:19:49 +08:00
    开始还以为是我的配置问题,折腾到半夜。后来换成 spdyproxy 这个工具搭建,还是一样的结果...
    neilp
        2
    neilp  
       2016-08-24 00:22:20 +08:00 via iPhone
    connect 发生在 简历 tls 通道之前啊 先告诉代理你要连谁,然后代理才能转发 tcp 数据啊 之后才是 tld 连接建立
    neilp
        3
    neilp  
       2016-08-24 00:23:36 +08:00 via iPhone
    手机打字 错误一片 最后是 tls 连接建立
    ZRS
        4
    ZRS  
    OP
       2016-08-24 00:25:52 +08:00
    @neilp 不是先和代理握手建立隧道然后再进行下一步的工作吗...而且我看也有人用 https 代理科学上网呀...
    wql
        5
    wql  
       2016-08-24 00:56:51 +08:00 via Android
    @ZRS 不加密 CONNECT 头部的这种属于透明代理
    ranran
        6
    ranran  
       2016-08-24 01:23:54 +08:00
    @ZRS
    看了这个贴 感觉和你理解差不多 所有数据都应该通过 spdy 加密。

    http://www.oschina.net/question/12_117516

    实际情况建议你抓包看看是否发的明文 CONNECT
    ranran
        7
    ranran  
       2016-08-24 01:34:22 +08:00
    gamexg
        8
    gamexg  
       2016-08-24 08:23:36 +08:00
    如果你的却是 https 代理,那么所有的内容都是加密的。
    非 http2 可以看作在 http 协议外面套了一层 tls 。

    然后 https 代理并不可靠, CONNECT 连接 https 站点存在明显的流量特征,是可以被探测到的。
    http://blog.zorinaq.com/my-experience-with-the-great-firewall-of-china/
    ZRS
        9
    ZRS  
    OP
       2016-08-24 09:47:44 +08:00
    @ranran
    我看 HTTPS URL via SPDY 这个部分还是
    *** Client sends CONNECT request to Proxy via SPDY ***呀
    和远程服务器的握手是加密的吧?



    @gamexg 嗯,这篇文章我也看了,但是只是针对 TLS 里的 TLS 握手请求的特征识别呀,我遇到的情况是精准的识别了所有黑名单然后阻断了...


    @wql 能说详细一点嘛?这个请求不是加密的?
    fangdingjun
        10
    fangdingjun  
       2016-08-24 10:09:20 +08:00 via Android
    这种架构 client--------tls------->proxy------------->target
    如果配置正确,可以访问任何网站

    有问题,检查一下 squid 日志,我之前遇到过 squid 连不上 google 的 ipv6 地址直接返回 503
    nvidiaAMD980X
        11
    nvidiaAMD980X  
       2016-08-24 10:52:22 +08:00 via Android
    我发现我也有和 LZ 一样的问题,应该是你所处的地区被审查得厉害,换个地区,或许就没有问题了。
    我在老家死活都是卡在 connecting 阶段…………换了一个地区,就没事了。
    ranran
        12
    ranran  
       2016-08-24 11:38:37 +08:00
    @ZRS 抓包啊抓包啊 我是没 spdy 代理 没法抓包
    julyclyde
        13
    julyclyde  
       2016-08-24 15:40:20 +08:00
    CONNECT 这句话显然不加密啊
    后面是否加密要看你连接的是什么服务啊
    flynaj
        14
    flynaj  
       2016-08-25 00:01:14 +08:00 via Android
    建议直接上 HTTP2 , nghttpx+ squid 这样就不需要客户端了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3509 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 10:51 · PVG 18:51 · LAX 03:51 · JFK 06:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.