从 http 重定向到 https

从 http 重定向到 https

我有一个在端口 443 上运行的 Hudson/Jenkins 安装,因此我可以使用 访问它https://ci.mydomain.com。我没有像 Apache Httpd 那样在端口 80 上运行的 Web 服务器,但我希望如果用户输入,http://ci.mydomain.com 它应该被重定向到https://...

我尝试过iptables

/sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 443
/sbin/iptables-save
chkconfig --level 35 iptables on

但浏览器告诉我连接失败。所以我不想安装 Apache 网络服务器,我只想从 重定向http://ci.mydomain.comhttps://ci.mydomain.com

答案1

iptables不是您想要的是——您正在向正在使用 HTTPS(加密,并且对您的浏览器来说非常令人困惑)的服务器发送一个期望使用普通 HTTP(只是无聊的普通文本)的浏览器。

你想要一个300 系列重定向由您的签发网络服务器将客户端发送到相应的 https:// URL。如果您正在运行 Apache,则可以将其与指令SSLRequireSSL(手动输入) 以确保您的客户端无法通过未加密的通道访问应加密的资源。

答案2

HTTP 和 HTTPS 是不同的应用程序级协议,因此您不能仅在传输级别进行重定向。您应该在端口 80 上设置 Apache 或 Nginx 或其他程序,以使用标头执行正确的 HTTP 重定向Location

答案3

设置一个相对空白的 VirtualHost 监听 80,它不做任何事情,

重写引擎开启

重写规则(.*)https://foo.com1 美元

答案4

您可能在这里陷入了僵局,因为 http 和 https 有很大不同,简单的端口重定向无法起作用。

相关内容