【问题标题】:How to redirect https to http with iptables command如何使用 iptables 命令将 https 重定向到 http
【发布时间】:2016-11-28 08:44:03
【问题描述】:

在我的 OpenWrt 路由器上运行着一个名为 nodogsplash 的强制门户。当一个预认证的用户访问一个http url时,浏览器会弹出一个网页引导用户进行认证。但是当用户访问 https url 时,什么都没有发生。

我希望浏览器总是弹出访问 http 和 https url 的认证网页。

我尝试了以下命令,但仅适用于 http 请求。当我访问一个https域名时,它不会重定向到192.168.88.210。

iptables -t nat -I PREROUTING -p tcp -m multiport --dport 80,443 -j DNAT --to-destination 192.168.88.210:80
iptables -t nat -I POSTROUTING -p tcp -m multiport --dport 80,443 -j MASQUERADE

我阅读了github discussion,但仍然不知道如何解决这个问题。任何人都可以帮助我使用 iptables?

【问题讨论】:

  • @kixorz 是对的。您无法使用 iptables 将流量 443 重定向到 80/8080。
  • @acj 感谢您的回复。有没有简单易行的解决方案来解决这个问题?
  • Read this post了解如何在80/8080/443中配置iptables(翻译一下)

标签: firewall iptables openwrt captivenetwork captiveportal


【解决方案1】:

iptables 无法解决此问题。使用您的方法,浏览器将使用常规 http 连接到期待 SSL 客户端的 https 服务器。这是不可能的。您需要在端口 80 http 上运行一个简单的 HTTP Web 服务器,并执行 Location header 重定向到 https URL。

【讨论】:

  • 感谢您的回复。当我访问 https 页面时,是否有任何简单的解决方案可以让强制门户跳转到身份验证页面? NodogSplash 使用了不支持 https 的 libhttpd。
  • @daniel 不幸的是,如果没有浏览器证书错误,这是不可能的。
猜你喜欢
  • 1970-01-01
  • 2014-04-23
  • 2017-07-01
  • 1970-01-01
  • 2015-04-23
  • 2010-09-05
  • 1970-01-01
  • 2016-08-31
相关资源
最近更新 更多