如何让请求 HTTPS 的流量转发到 HTTP? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Xheldon
V2EX    服务器

如何让请求 HTTPS 的流量转发到 HTTP?

  •  
  •   Xheldon 2023-10-15 22:08:08 +08:00 1711 次点击
    这是一个创建于 805 天前的主题,其中的信息可能已经有所发展或是发生改变。
    RT

    背景是这样的我家里的 TPLNIK 的路由器,自带了 DDNS 服务,但是只提供 HTTP 的,所以外网只能通过 HTTP 访问家里的服务,可以再设置端口映射不同的本地服务,无限流量很稳定非常好用。

    我另外还有一个域名 a.bbb.com ,设置了 CNAME 到 TPLINK 给的 DDNS 域名上,此时通过 http 访问我的域名+端口号是可以到我本地的服务的。

    但是问题是,我想搞个小程序,以家里的服务做后端,但是小程序的安全域名要求必须是备案过的且是 HTTPS 的, 因此我想将来自客户端发起对我的域名的请求( https )的,通过 tplink 的 ddns 转发到我本地的 http 服务。

    这里有一些问题:

    1. 证书问题。我本地的 Web 服务是否可以通过在根目录设置一个 a.bb.com 的证书等手段,达到外网 https 访问 a.bb.com 就可以穿访问到我本地的服务呢?

    2. frp 我试过似乎比较费劲。服务端设置好了 frps ,本地设置好了 frpc ,但是因为我的域名是腾讯云备案过的,找朋友搞了个阿里云的服务器,结果腾讯云添加 A 记录到 阿里云的服务器 IP 的时候,访问域名,居然提示我域名未备案,看阿里云的文档介绍貌似还得再在阿里云备份一次。

    3. 云函数转发。这就是另一个曲线救国了,就是把客户端的每个请求再用函数转发给我本地的服务器。目前看华为云函数免费 100 万次/月完全满足需求,但是没试过,不知道行不行,它那个 API 网关服务,要求太严格了,而且还必须明确 path 、query 、header ,感觉不是干我这个事儿的,同时还要写函数,费劲呐

    4. DNS 的方式我试过了,不可行。

    5. 搞个 Nginx 服务器似乎也不错,但是 Nginx 能 proxy_pass 非本机的地址吗?本人网络小白没研究过。。

    6. 主要还是不想花钱,现在服务器太贵了,带宽贵,流量贵,而且我小程序上不了架,就服务我亲朋好友十几个人(体验版限制人数),所以一个月撑死就几百个请求,实在不想花钱买服务器。

    7. 有什么其他办法实现我的诉求吗。。

    8. TPLINK 的 DDNS 实在是太好用了,无限流量速度还快,没测过带宽,我用它外网访问内网的 NAS ,通过 Infuse 看 BT 下载的电影,很棒。所以如果用了其他的内网穿透,就要考虑流量的事情了,哎又是钱。。

    9. 花生壳花了 6 块巨资,开了 https 的内网穿透服务,但是还是上一条说的,一个是限制太多( 1 个月 1G 、1M 带宽),而且无法跟免费无限流量的 TPLINK DDNS 共存(因为只有一个公网 IP 嘛)。

    拜谢拜谢!

    另:实在不行就只能买个腾讯云服务器自己搭 frp 了然后禁用 TPLINK 的 DDNS 了,这样就不能在外网用 infuse 看小电影了,难受
    第 1 条附言    2023-10-19 01:09:56 +08:00
    最终方案是搞了个云主机,然后配置 nginx 把访问我腾讯云 https 域名的流量转发到我本地 ddns 的 http 域名上了。
    感谢各位,此贴终结~
    11 条回复    2023-10-16 19:58:34 +08:00
    itechify
        1
    itechify  
    PRO
       2023-10-15 22:28:12 +08:00 via Android
    捋一下

    假设家宽 ddns 到 home.foo.com ,申请免费 DV 证书(备案了 foo.com 这个域名)

    tplink 配置端口转发,路由器 10443 端口转发到内网 nginx 的 443 端口。在 nginx 那 DV 证书配置好

    这时候,https://home.foo.com:10443 可以访问到 nginx 吧?
    Xheldon
        2
    Xheldon  
    OP
       2023-10-15 23:46:20 +08:00
    问题在于,tplink 的端口转发的时候,只支持外网的 http 类型转发(不确定我有没有正确使用,还是说 http 只表示是 web 类型,不表示协议,因为同时可选的还有 DNS 、FTP 、Gopher 等,但就是没有 HTTPS ),nginx 我也不熟固有此一问。。我用的 nextjs ,很简单的一个 web 服务,做接口用的。
    Xheldon
        3
    Xheldon  
    OP
       2023-10-15 23:46:34 +08:00
    @oneisall8955 问题在于,tplink 的端口转发的时候,只支持外网的 http 类型转发(不确定我有没有正确使用,还是说 http 只表示是 web 类型,不表示协议,因为同时可选的还有 DNS 、FTP 、Gopher 等,但就是没有 HTTPS ),nginx 我也不熟固有此一问。。我用的 nextjs ,很简单的一个 web 服务,做接口用的。
    xixiv5
        4
    xixiv5  
       2023-10-16 04:14:56 +08:00
    你 nginx 反向代理就行,https://xxxx.com 反向代理到 你的 DDNS http://aaaa.com:端口 带不带都行
    rebecca554owen
        5/span>
    rebecca554owen  
       2023-10-16 07:37:59 +08:00 via Android
    按理来说,你开端口转发就是纯数据转发,不受协议影响,https 可能 443 被屏蔽了而已。
    IvanLi127
        6
    IvanLi127  
       2023-10-16 09:18:41 +08:00
    你自己测试的话,直接把域名解析到本地的开发机上不就好了,证书去搞个免费的就行。反正本地调通了再看要不要搞 ddns 。ddns 只是域名解析,和协议没关系,如果不通,换端口试试。如果一直不行,可能 HTTPS 协议被运营商屏蔽了。
    IvanLi127
        7
    IvanLi127  
       2023-10-16 09:21:11 +08:00
    @IvanLi127 我看走眼了,op 不是要测试,不过流程一样。先用 hosts 或者直接改 DNS 解析把域名解析成本地的服务器内网 ip ,用 https 测通了再搞 DDNS ,这样一步步做比较好排查问题。
    Xheldon
        8
    Xheldon  
    OP
       2023-10-16 10:21:03 +08:00
    @rebecca554owen 啊。。这倒有可能,因为有个点比较奇怪,我北京联通蜂窝网络访问 tplink 的 ddns 的 80 端口是访问不通的,但是北京联通宽带可以访问 估计 443 这种常用的端口也一样
    Xheldon
        9
    Xheldon  
    OP
       2023-10-16 10:22:11 +08:00
    @xixiv5 nginx 有跨域问题吗?我研究一下去,感谢感谢~ 另外,还是需要外网一台服务器
    Xheldon
        10
    Xheldon  
    OP
       2023-10-16 10:23:34 +08:00
    @IvanLi127 感谢提供思路!我试试去,如果协议无关就太棒了
    rebecca554owen
        11
    rebecca554owen  
       2023-10-16 19:58:34 +08:00 via Android
    HTTP 协议端口可以用 8443 ,2053 ,2083 等等
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5367 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 08:42 PVG 16:42 LAX 00:42 JFK 03:42
    Do have faith in what you're doing.
    ubao msn 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