xchaoinfo
V2EX  ›  问与答

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

  •  
  •   xchaoinfo · Dec 29, 2023 · 2311 views
    This topic created in 1040 days ago, the information mentioned may be changed or developed.

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

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

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

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

    https://developer.mozilla.org/docs/Web/HTTP/Status/302
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4848 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 01:16 · PVG 09:16 · LAX 17:16 · JFK 20:16
    ♥ Do have faith in what you're doing.