全局redirect端口80到443

我想设置我的Linux机箱,以便任何打到端口80的东西只要告诉443。我希望它是无论域,IP或任何具体的细节可能存在。 如果可以要求80港口,应该告诉不要。 我们在443年这样做。

我将在443上使用Apache,因此可以将它绑定到80,但是没有看到解决scheme必须在端口80上包含Apache。

要清楚,我正在寻找一个解决scheme,不需要更改虚拟主机。 我理解可以通过inheritance传递下去的全局redirect。 这需要虚拟主机的变化。 我正在寻找更全面的东西,更不容易“哎呀,我忘了那条线,现在端口80是暴露我的数据未encryption。

你将如何去解决这个问题? iptables,Apache,用netcat自定义shell脚本和一些神奇的东西,使其去SSL?

把端口80redirect到443对于iptables来说是微不足道的,但从你的描述来看,你显然不想在端口443上运行http:你希望人们从httpredirect到https。

您清楚地知道,这可以在每个虚拟主机的Apache中完成,但您不希望使用它来避免configuration选项; 否则sgtbeano的解决scheme是我会build议。

基于此,我build议您停止在端口80上使用Apache,并且在端口80上运行另一个networking服务器,以实现简单的redirect。

你甚至可以使用不同的configuration目录在80端口上运行一个单独的Apache实例。 这也将避免configurationoopses,但可能会更难以维护(并不是很多人希望2个不同的configuration文件在同一主机上的Apache不同的实例)。 在这种情况下,您可以使用sgtbeano的端口80实例的configuration。

尝试添加到你的httpd.conf;

 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

从这里 – > http://www.sslshopper.com/apache-redirect-http-to-https.html

这使用mod_rewrite,所以请确保你有事先安装。

推荐的方法是如您在这里描述的那样在每个站点的VHOST文件中设置它;

http://wiki.apache.org/httpd/RedirectSSL

不过,Apache维基更详细地logging了上面的重写方法;

http://wiki.apache.org/httpd/RewriteHTTPToHTTPS

由于HTTP和HTTPS是两个不同的协议,你不能简单地将iptables tcp / 80 redirecion到tcp / 443,因为apache不会理解tcp / 443上的HTTP

所以HTTP请求必须使它到apache / nginx / etc,然后在应用层被“redirect”。 这将在nginx上使用“redirect / https://domain.name/ ”或在Apache上使用重写规则完成