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

懂Squid的帮个忙,请问Squid支持HTTPs的正向代理吗

  •  
  •   hcw1588 · 2013-07-30 16:47:58 +08:00 · 32505 次点击
    这是一个创建于 4137 天前的主题,其中的信息可能已经有所发展或是发生改变。
    23 条回复    2020-01-13 23:24:31 +08:00
    BOYPT
        1
    BOYPT  
       2013-07-30 17:46:37 +08:00
    支持。
    hcw1588
        2
    hcw1588  
    OP
       2013-07-30 18:14:17 +08:00
    @BOYPT 没用啊代理不了https啊。
    ericFork
        3
    ericFork  
       2013-07-30 20:11:28 +08:00
    支持。nginx 不支持。
    hcw1588
        4
    hcw1588  
    OP
       2013-07-30 20:14:07 +08:00
    @ericFork 怎么配置,我不管怎么配置都没用。。
    hcw1588
        5
    hcw1588  
    OP
       2013-07-30 21:25:10 +08:00
    @BOYPT
    @ericFork
    http_port 3128
    https_port 443 cert=/etc/squid/cert.pem key=/etc/squid/key.pem
    不管怎么弄都没用
    ericFork
        6
    ericFork  
       2013-07-30 22:40:57 +08:00
    用 http 的端口就行了,不需要另开 https_port
    BOYPT
        7
    BOYPT  
       2013-07-31 09:28:42 +08:00
    @hcw1588 首先明确下你要的HTTPS代理是什么,至少3个歧义。

    1. SSL封装的HTTP代理
    2. 经过HTTP代理的HTTPS请求
    3. 解开远程网站的HTTPS并重新加密的中间人

    这三者Squid均能做到,你配置https_port是实现第1种,这个特性需要编译时候开启。
    而如果是第2种,不需要这么配置,浏览器会使用CONNECT方式通过HTTP经过代理。
    hcw1588
        8
    hcw1588  
    OP
       2013-07-31 12:23:36 +08:00
    @BOYPT 第三种呢。第一种成功不了,编译时开启了。。
    hcw1588
        9
    hcw1588  
    OP
       2013-07-31 12:35:07 +08:00
    @BOYPT cache.log出现
    2013/07/31 20:31:45| clientNegotiateSSL: Error negotiating SSL connection on FD 12: error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request (1/-1)
    freewizard
        10
    freewizard  
       2013-07-31 13:28:43 +08:00
    楼主确定要 @BOYPT 说的 中间人重新加密的正向代理? 
    如果是,那不必听443(https_port 443),需要最新版(最好是3.3+)的squid编译启用sslbump和动态证书生成
    http://wiki.squid-cache.org/Features/SslBump
    http://wiki.squid-cache.org/Features/DynamicSslCert
    http://wiki.squid-cache.org/Features/MimicSslServerCert
    hcw1588
        11
    hcw1588  
    OP
       2013-07-31 13:32:16 +08:00
    @freewizard SSL封装的HTTP代理出现9楼的情况怎么回事。
    freewizard
        12
    freewizard  
       2013-07-31 13:38:58 +08:00
    你客户端如何配置的?
    第一种只有Chrome且配置对了才能用的
    http://dev.chromium.org/developers/design-documents/secure-web-proxy
    hcw1588
        13
    hcw1588  
    OP
       2013-07-31 13:40:55 +08:00
    @freewizard 也就是其他浏览器用不了
    freewizard
        14
    freewizard  
       2013-07-31 13:50:21 +08:00   ❤️ 1
    对,其他的浏览器都无法直接使用
    变通办法是本地起一个stunnel,把HTTPS转回HTTP,浏览器代理再指向本地HTTP
    hcw1588
        15
    hcw1588  
    OP
       2013-07-31 14:04:12 +08:00
    @freewizard 那squid和以发出某些提醒给正在使用的用户吗。比如暂时关闭,然后想给用户提醒,用户正在浏览a网页,点击b网页时显示提醒然后继续浏览。。额就像当年的电信ADSL流量时长提醒那样
    tywtyw2002
        16
    tywtyw2002  
       2013-07-31 14:48:40 +08:00 via iPhone
    @hcw1588 可以。用重定向器。自己去写。不过squid 很难区分用户个体。
    hcw1588
        17
    hcw1588  
    OP
       2013-07-31 14:53:33 +08:00
    @tywtyw2002 最后一件事,squid3.3以上的inid.d启动脚本怎么写,参考网上的都不成功
    catinred
        18
    catinred  
       2013-08-21 01:13:01 +08:00
    @BOYPT 在内网的网关安装了squid做缓存和过滤,拨了vpn,加了国内路由。限制内网用户只能走http/https.要让内网用户能够科学上网该怎么配置?谢谢。
    BOYPT
        19
    BOYPT  
       2013-08-21 09:21:28 +08:00
    如果想让内网用户无知觉地跑squid,可以Squid的http端口配置tproxy模式,iptables把80端口请求 tproxy给squid。这种情况https只能放直通。

    如果让内网用户手动配置代理,那网关不需要打开IP转发,直接打开squid,用户配置代理上网,http/https都可以支持。
    lfcase
        20
    lfcase  
       2017-02-22 10:49:21 +08:00
    @hcw1588 你好,想问一下关于 squid 代理的问题,希望看到后能回复哦!
    我们现在是使用两台 squid (一台内网做透明代理,一台云主机做科学上网),目的是让内网用户上网自动分流,想法是,内网 squid 上设置转发 acl ,符合条件的转抛到云主机的 squid ,相关具体的配置:
    云主机 squid ,正常代理,加了一个 ip 来源限制(只有公司出口 IP 才能使用它),这个省略吧
    内网 squid ,转发 acl 如下:
    cache_peer XX.XX.XX.XX parent 3128 0
    acl OutSide url_regex -i "/some/path/to/file" #文件中是一些域名
    cache_peer_access XX.XX.XX.XX allow OutSide
    never_direct allow OutSide
    代理端口如下(内网用户电脑网关指向了它,开启了路由及 iptables 转发):
    http_port 3128
    http_port 880 intercept
    https_port 8443 intercept ssl-bump cert=/etc/squid/ssl/myCA.pem

    问题描述:
    1 、当取消 iptables 的 443 端口转发,及 https_port 的配置,(个人认为就是 https 代理用 http 的 connect 方法), http 的网站正常,但是 https 的网站无法转抛给云主机的 squid ,(可能是 connect 方法,看不到域名了?)
    2 、当开启 443 端口转发及 https_port 的配置,证书总是不信任,总感觉是中间人攻击模式,看 squid 说明( http://wiki.squid-cache.org/Features/SslBumphttp://wiki.squid-cache.org/Features/DynamicSslCert
    http://wiki.squid-cache.org/Features/MimicSslServerCert ),也没有头绪,主要对这块不懂。
    希望得到帮助。
    ivyliner
        21
    ivyliner  
       2017-08-16 09:33:00 +08:00
    @lfcase 最近正好刚弄完 ssl 正向代理, 这块资料缺失比较少, 可以参考这个文档 https://smoothnet.org/squid-v3-5-proxy-with-ssl-bump/
    foam
        22
    foam  
       2017-09-24 10:29:04 +08:00
    我最近部署 squid 也是参考的楼上的文章,昨天刚写好博客发现原文 503 了。我做了简单记录:
    http://zoufeng.net/2017/09/23/squid-proxy-with-ssl-bump/
    z888888cn
        23
    z888888cn  
       2020-01-13 23:24:31 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3648 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 00:49 · PVG 08:49 · LAX 16:49 · JFK 19:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.