例如,有个网站 example.com 可以 http:exampel.com 也可以 https:example.com 访问过程中不会自动从 http 跳转到 https
想在自己的路由器上实现, 将客户端发来的 http 请求, 强制转为 https ,然后发到网站的服务器。
1
bfdh 332 天前
劫持 http 请求,然后回 302 到 https 。
|
2
LYwyc2 332 天前
这种功能难道不是应该是 s 端需要考虑的吗?
|
4
proxytoworld 332 天前
为什么要在路由器实现,浏览器插件也可以把
|
5
bfdh 332 天前 1
@xchaoinfo #3 不知道有没有现成的插件,如果是 openwrt 的话自己配一下也不难。
1 、dnsmasq 将 example.com 解析得到的 ip 放到 ipset 中 2 、目的 ip 命中 ipset ,且端口为 80 的所有请求重定向到路由器的 X 端口 3 、在路由器 X 端口上建立 http 服务,将所有 http 请求 302 跳转到 https://example.com |
6
avalon8 332 天前
如果可以的话装个 nginx
|
7
Turismo 332 天前
我同意 @bfdh @avalon8 的方法,或者说在 op 上装一个 nginx ,然后自己配置一下 dns 访问你的路由器的 nginx 端口 http://example.com ,然后把流量直接发给 https://example.com
|
8
gentrydeng 332 天前 via Android
虽然可行,但是不建议。连浏览器自带的“一律使用安全连接”都不是很好用,又何谈在路由器上部署。
而且“即使规范要求浏览器在重定向时保证请求方法和请求主体不变,但并不是所有的用户代理都会遵循这一点,你依然可以看到有缺陷的软件的存在。所以推荐仅在响应 GET 或 HEAD 方法时采用 302 状态码,而在其他时候使用 307 Temporary Redirect 来替代,因为在这些场景下方法变换是明确禁止的。” https://developer.mozilla.org/docs/Web/HTTP/Status/302 |