我的服务器上有多个网站,其中只有一个是通过 https (例如:https://admin.example.com)。
但如果用户尝试访问https://www.example.com,他收到了有关无效 SSL 证书的警告,该证书专用于 admin.example.com,但对于 www.example.com 来说是错误的(显然!)。
我想将每个不是针对 admin.example.com 的 https 请求重定向到原始主机,但在 http 中,这可能吗?
要明确的是:
- https://admin.example.com:无重定向
- http://admin.example.com:重定向至https://admin.example.com(通过 NGinx 配置完成)
- https://whatever.example.com:重定向至http://whatever.example.com
- https://whatever.example.com/query/string?complex=1:重定向至http://whatever.example.com/query/string?complex=1
可以通过 iptables 实现吗?如果可以,怎么做?
谢谢你的帮助,我很感激:)
答案1
解决警告问题的替代方案包括以下之一
- 关上https所有端口合并(端口 443)
- 购买有效期为所有域名
- 放在https- 在单独的 IP 地址上设置站点,并且仅在该 IP 上打开端口 443。
如果你确实要使用重定向,则必须将重定向发送到浏览器后SSL 证书已呈现给浏览器,并且警告也已显示。可能有一些方法可以使用 iptables 将端口 443 重定向到端口 80,但我不知道有什么方法可以以“好”的方式做到这一点,因为浏览器通过https假定它符合启用 SSL 的站点。
答案2
您无法重定向https流量http。浏览器必须看到此重定向,才能知道将会有非 SSL 流量。
您应该购买一个有效的、被广泛信任的 SSL 证书,或者关闭https港口。
您可以通过一些配置参数重定向阿帕奇,但您仍然会首先收到警告。