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

333 天前
 xchaoinfo

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

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

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

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

https://developer.mozilla.org/docs/Web/HTTP/Status/302

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1004309

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX