首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >80至443端口的全球重定向

80至443端口的全球重定向
EN

Server Fault用户
提问于 2013-11-11 16:23:08
回答 3查看 19K关注 0票数 1

我想设置我的linux盒,这样任何命中端口80的东西都会被告知,询问443。我希望它是无论域,IP或任何具体的细节可能存在。如果它可以要求80端口,它应该被告知不。我们在443上这么做。

我将在443上使用Apache,这样就可以轻松地将其绑定到80,但不要认为解决方案必须包括端口80上的Apache。

为了明确起见,我正在寻找一个不需要对vhost进行更改的解决方案。我理解可以通过继承传递的全局重定向。这需要更改vhost。我正在寻找更全面的东西,不太容易“哎呀,我忘了那一行,现在端口80是公开我的数据未加密。”

你将如何着手解决那个问题?iptables,apache,带有netcat的自定义shell脚本,以及一些使它成为SSL的魔法?

EN

回答 3

Server Fault用户

回答已采纳

发布于 2013-11-11 16:39:29

尝试将此添加到您的httpd.conf中;

代码语言:javascript
复制
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确实记录了上述重写方法的更多细节;

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

票数 8
EN

Server Fault用户

发布于 2013-11-11 16:42:59

在iptables中,将端口80重定向到443非常简单,但是从您的描述来看,您显然不希望在端口443上运行http :您希望将用户从http重定向到https。

您清楚地知道,对于每个虚拟主机,在Apache中都可以这样做,但是您不愿意使用它来避免配置操作;否则,sgtbeano的解决方案就是我推荐的。

基于此,我建议您停止在端口80上使用Apache,并在端口80上运行另一个进行简单重定向的the服务器。

您甚至可以使用不同的配置dir在端口80上运行Apache的单独实例。这也将避免配置oopses,但可能更难维护(并不是很多人期望Apache在同一台主机上有两个不同的配置文件)。在本例中,您可以对端口80实例使用sgtbeano的配置。

票数 4
EN

Server Fault用户

发布于 2013-11-11 16:41:08

由于HTTP和HTTPS是两种不同的协议,所以不能简单地将tcp/80重发到tcp/443,因为apache不会理解tcp/443上的HTTP

因此,HTTP请求必须到达apache/nginx/etc,然后“重定向”到应用层。这将在nginx上使用“重定向/ https://domain.name/”或使用apache上的重写规则来完成。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/554180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档