有没有什么程序可以把客户端 HTTP 请求“包装”成 HTTPS 请求发给网站的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
user0506
V2EX    程序员

有没有什么程序可以把客户端 HTTP 请求“包装”成 HTTPS 请求发给网站的?

  •  
  •   user0506 2019-07-11 17:57:39 +08:00 4539 次点击
    这是一个创建于 2283 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有没有这样的程序(中间程序):

    我的程序 <--(HTTP 协议)--> 中间程序 <--(HTTPS 协议)--> 任意目标网站

    比如自己向 localhost:80 发送 GET / HTTP/1.1\r\nHost: www.baidu.com ,中间程序可以把原先的 HTTP 请求包装成 HTTPS 并且原样发给目标网站,有这样的程序吗?

    部署的程序目前只做了 HTTP 支持,要加 HTTPS 的话又得等好久上线,这样的中间程序平台不限,Windows/Linux/Mac 都可以,任务太重,本来原本不是我负责的,我也一点都不了解这部分,现在头都大了,求指教。

    28 条回复    2019-07-12 10:10:56 +08:00
    lower
        1
    lower  
       2019-07-11 18:00:57 +08:00
    我怎么觉得用反向代理能搞定呀?
    ysc3839
        2
    ysc3839  
       2019-07-11 18:02:34 +08:00 via Android
    nginx
    WuwuGin
        3
    WuwuGin  
       2019-07-11 18:03:15 +08:00
    cd (删除) n 吧,cloudflare 这种就有这个功能,不知道国内谁支持
    chinesestudio
        4
    chinesestudio  
       2019-07-11 18:06:06 +08:00 via Android
    https 反代 http 这个容易 反过来没有试过
    RickyC
        5
    RickyC  
       2019-07-11 18:08:52 +08:00 via iPhone
    可以看一下阿里云的 CDN,把一个域名指向到源站
    然后可以设置成 https,也可设置 http 自动跳转至 https
    阿里云有免费的 https 证书,有效期 1 年
    xeaglex
        6
    xeaglex  
       2019-07-11 18:14:32 +08:00 via Android
    去了解下 CONNET 方法的代理原理吧
    annielong
        7
    annielong  
       2019-07-11 18:14:36 +08:00
    应该也算中间人攻击吧,等于伪造目标网站的证书,然后和目标网站通讯
    reus
        8
    reus  
       2019-07-11 18:15:52 +08:00
    都不知道你想做什么
    是想给只支持 HTTP 的后端加上 HTTPS ?那配置 nginx 提供 https,然后以这个 http 做上游就行了,你想出的那个方案,我不知道用来干嘛的。
    HTTPS 代理只能包装”连接“,用 OPTION 方法,不能代理”请求“,因为 https 本来就是用来防止中间人攻击的,不可能拆分成“请求”
    reus
        9
    reus  
       2019-07-11 18:21:59 +08:00
    修正 "OPTION" 方法,CONNECT 方法
    nomaka
        10
    nomaka  
       2019-07-11 18:28:28 +08:00 via iPhone
    stunnel
    ipwx
        11
    ipwx  
       2019-07-11 18:28:35 +08:00
    Squid 大概行,但是我没配置过。
    Destiny97
        12
    Destiny97  
       2019-07-11 19:00:42 +08:00 via Android
    阿里云的 cdn 支持,其他 cdn 不清楚
    zado
        13
    zado  
       2019-07-11 20:59:22 +08:00
    Nginx 可以,用 Nginx 代理一下就可以了。
    twl007
        14
    twl007  
       2019-07-11 21:01:35 +08:00 via iPhone
    https 转 http 都可以的好么
    greatghoul
        15
    greatghoul  
       2019-07-11 21:07:13 +08:00
    腾讯云云函数配置 api 网关就可以。
    greatghoul
        16
    greatghoul  
       2019-07-11 21:08:16 +08:00
    ziseyinzi
        17
    ziseyinzi  
       2019-07-11 21:26:13 +08:00 via Android
    我感觉楼上都理解错了……楼主的意思是他写的客户端只做了 http 没做 https,然后现在想粗暴地加上 https 功能?
    runtu2019
        18
    runtu2019  
       2019-07-11 21:53:14 +08:00
    Nginx 可以正向代理的,监听 80 端口,proxy_pass 参数手动改为 https 试试!
    本来是想着叫你用 python flask+requests 自己写个脚本的,反正也不怎么费事
    gamexg
        19
    gamexg  
       2019-07-11 22:14:27 +08:00
    nginx 等都应该能够做到,
    不行的话自己写个程序,如果不考虑 WebSocket 等协议支持的话不算难。
    Tomorr
        20
    Tomorr  
       2019-07-11 22:18:26 +08:00
    msg7086
        21
    msg7086  
       2019-07-11 23:01:01 +08:00
    @ziseyinzi 你说得没错啊。楼上哪里理解错了么。
    这明显就是一个 Nginx 解决的事情呀……
    yulon
        22
    yulon  
       2019-07-12 05:02:26 +08:00
    说 CONNECT 的想什么呢,CONNECT 是 HTTPS 对 HTTPS 的,连接建立之后就是纯到不能再纯的 TCP 流了,又不会把 HTTP 转换成 HTTPS。

    这种直接用中间程序代理 HTTP 请求,然后自己用 HTTPS 请求,再把响应的数据传回去就行了,根本不用管什么 CONNECT,又不会接收到 HTTPS 请求,怎么可能会出现 CONNECT。
    Hackerl
        23
    Hackerl  
       2019-07-12 08:23:18 +08:00 via Android
    stunnel
    wnpllrzodiac
        24
    wnpllrzodiac  
       2019-07-12 08:30:53 +08:00 via Android
    服务端的话,套个反代就好了,你是客户端。nginx https 前向代理?本来想做的,觉得挺麻烦的。我的用户不能访问国外网站,我就让他们机器上的客户端请求发到我的本地机器(支持国外网站)。我的机器再转发到国外。前段时间由于一些原因,只能套 cf https 访问了。我就不好搞了。nginx https 前向不大好搞
    neroxps
        25
    neroxps  
       2019-07-12 08:42:56 +08:00
    楼主的意思是你访问任意 http 网站的时候,发出去的内容其实是 https ???而原来的网站其实还是 http ???能这样玩吗?注意是任意网站,任意网站的意思是他并没有服务器的管理权限喔。意思是对方网站没有提供 https 服务你也可以使用 https 向其访问???没这种东西吧?
    krixaar
        26
    krixaar  
       2019-07-12 09:39:12 +08:00
    @neroxps 那就再加个中间层:客户端<=HTTP=>代理 1<=HTTPS=>代理 2<=ANY=>任意网站 XD
    oukichi
        27
    oukichi  
       2019-07-12 10:03:40 +08:00
    https 端口是 443 ……你再怎么包装发到 80 端口还不是一样……
    neroxps
        28
    neroxps  
       2019-07-12 10:10:56 +08:00
    @krixaar 这样有什么意义,楼主是不是在问某个不可描述的软件啊?哈哈
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2866 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 00:25 PVG 08:25 LAX 17:25 JFK 20:25
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86