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

各位网络大佬,在路由器上,如何将 http 请求转为 https?

  •  
  •   xchaoinfo · 359 天前 · 1415 次点击
    这是一个创建于 359 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如,有个网站 example.com 可以 http:exampel.com 也可以 https:example.com 访问过程中不会自动从 http 跳转到 https

    想在自己的路由器上实现, 将客户端发来的 http 请求, 强制转为 https ,然后发到网站的服务器。

    8 条回复    2023-12-29 20:35:11 +08:00
    bfdh
        1
    bfdh  
       359 天前
    劫持 http 请求,然后回 302 到 https 。
    LYwyc2
        2
    LYwyc2  
       359 天前
    这种功能难道不是应该是 s 端需要考虑的吗?
    xchaoinfo
        3
    xchaoinfo  
    OP
       359 天前
    @bfdh 大佬知道 路由器的插件能实现这个功能吗
    proxytoworld
        4
    proxytoworld  
       359 天前
    为什么要在路由器实现,浏览器插件也可以把
    bfdh
        5
    bfdh  
       359 天前   ❤️ 1
    @xchaoinfo #3 不知道有没有现成的插件,如果是 openwrt 的话自己配一下也不难。
    1 、dnsmasq 将 example.com 解析得到的 ip 放到 ipset 中
    2 、目的 ip 命中 ipset ,且端口为 80 的所有请求重定向到路由器的 X 端口
    3 、在路由器 X 端口上建立 http 服务,将所有 http 请求 302 跳转到 https://example.com
    avalon8
        6
    avalon8  
       359 天前
    如果可以的话装个 nginx
    Turismo
        7
    Turismo  
       359 天前
    我同意 @bfdh @avalon8 的方法,或者说在 op 上装一个 nginx ,然后自己配置一下 dns 访问你的路由器的 nginx 端口 http://example.com ,然后把流量直接发给 https://example.com
    gentrydeng
        8
    gentrydeng  
       358 天前 via Android
    虽然可行,但是不建议。连浏览器自带的“一律使用安全连接”都不是很好用,又何谈在路由器上部署。

    而且“即使规范要求浏览器在重定向时保证请求方法和请求主体不变,但并不是所有的用户代理都会遵循这一点,你依然可以看到有缺陷的软件的存在。所以推荐仅在响应 GET 或 HEAD 方法时采用 302 状态码,而在其他时候使用 307 Temporary Redirect 来替代,因为在这些场景下方法变换是明确禁止的。”

    https://developer.mozilla.org/docs/Web/HTTP/Status/302
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2754 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:01 · PVG 17:01 · LAX 01:01 · JFK 04:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.