虚拟主机 - *.80 重定向有效,为啥 *.443 无效?
Posted
技术标签:
【中文标题】虚拟主机 - *.80 重定向有效,为啥 *.443 无效?【英文标题】:Vhosts - *.80 redirect works, why doesn't *.443?虚拟主机 - *.80 重定向有效,为什么 *.443 无效? 【发布时间】:2017-07-13 23:15:11 【问题描述】:我已经设置了一个重定向来捕获所有 http:(端口 80)流量。这是为了解决安全问题(即不允许任何人直接访问服务器)。
<VirtualHost *:80>
DocumentRoot "/var/www/html/redirect"
</VirtualHost>
这是 vhosts 文件中的第一个条目,并且工作正常。但是,我还想将其用于所有重定向所有 https:流量(端口 443),使用以下内容(直接放在 vhost 文件中的第一个条目之后...
<VirtualHost *:443>
DocumentRoot "/var/www/html/redirect"
</VirtualHost>
但是,这样做会使我们所有的网站崩溃....
我已经运行了一个 httpd -S 并且它没有返回任何错误。
关于如何设置 https 重定向的任何建议?
【问题讨论】:
你的服务器监听端口是 443 吗? 1.我不知道为什么指定这样的DocumentRoot
应该“重定向”任何访问或其他一些东西......和 2. 你当然可以让你的 http 服务器在端口 443 上监听,但是你没有为证书处理指定任何配置这是通常在端口 443 上使用的 https 协议所必需的...这 mighty 只是您发布的一个大大减少的配置,但我们不知道这一点。但最重要的是:3. 你的 http 服务器错误日志文件在你重启时会显示什么?
这就是确切的配置,尽管在这 2 之后还有许多其他条目。我不想现在修补和检查错误日志,因为任何错误都会导致实时站点崩溃
【参考方案1】:
根据这个answer,你需要为:443虚拟主机指定SSL
<VirtualHost *:443>
SSLEngine On
DocumentRoot "/var/www/html/redirect"
</VirtualHost>
如果您的服务器正在侦听 443,还请查看您的站点配置。在访问页面时在运行时检查您的错误日志。
【讨论】:
请注意,var/www/html/redirect 只是一个没有与之关联的特定 SSL 的文件夹。就像我说的,它适用于 *:80。 如果您不使用 SSL 浏览,它会在没有SSLEngine On
的情况下工作,我会说 OP 正在尝试使用 SSL 达到 443 并且 Apache 出于某种原因而出现故障。还要确保你在某处设置了Listen 443
。
你能举个例子吗?以上是关于虚拟主机 - *.80 重定向有效,为啥 *.443 无效?的主要内容,如果未能解决你的问题,请参考以下文章
为啥在 Apache 中设置虚拟主机后,http://localhost 会重定向到我的默认虚拟主机?
为啥 AWS Route 53 主机重定向到 Elastic Beanstalk 服务器?