Iptable:将httpsredirect到除特定主机以外的http

我在我的服务器上有多个网站,只有其中一个是通过https(说:https: //admin.example.com )。

但是,如果用户尝试访问https://www.example.com ,他会收到有关无效SSL证书的警告,专用于admin.example.com,对www.example.com(显然!)是错误的。

我想redirect每一个不是admin.example.com的https请求到原来的主机,但在http中,这是可能的吗?

要清楚:

  • https://admin.example.com :不redirect
  • http://admin.example.com :redirect到https://admin.example.com (通过NGinxconfiguration完成)
  • https://whatever.example.com :redirect到http://whatever.example.com
  • https://whatever.example.com/query/string?complex=1 :redirect到http://whatever.example.com/query/string?complex=1

这可能通过iptables? 如果是的话,怎么样?

谢谢你的帮助,我明白了:)

解决警告问题的替代方法将是以下方法之一

  • 一起closureshttps端口(端口443)
  • 购买对所有域有效的SSL证书
  • https站点放在一个单独的IP地址上,只打开该IP上的端口443。

如果您绝对想要使用redirect,则必须在SSL证书已经呈现给浏览器之后将redirect发送到浏览器,并且在显示警告之后。 可能有一些方法可以用iptables将端口443redirect到端口80,但是我不知道有什么方法可以在“好”的方法中做到这一点,因为浏览器通过https请求站点假定它符合启用了SSL的现场。

您无法将httpsstream量redirect到http 。 这个redirect必须被浏览器看到,要知道,会有非SSLstream量。

您应该购买一个广泛信任的有效SSL证书,或closureshttps端口。

你可以通过Apache的一些configuration参数redirect,但是你仍然会首先得到警告。