【问题标题】:Redirect from HTTPs to HTTP in Apache在 Apache 中从 HTTP 重定向到 HTTP
【发布时间】:2015-12-09 21:21:36
【问题描述】:

我有几个站点在同一个 IP 下运行,并激活了基于名称的虚拟主机支持:

  • myexamplesite0.com
  • myexamplesite1.com
  • myexamplesite2.com

在我的 apache 配置(/etc/apache2/sites-available/default-ssl)中,我有一个重写规则来将请求从 HTTPs 重定向到 HTTP。

<VirtualHost *:443>
    <IfModule mod_rewrite.c>
        RewriteEngine On

        # Redirect to HTTP
        RewriteCond %{HTTPS} on
        RewriteCond %{HTTP_HOST} !^(www\.)?myexamplesite1\.com [NC]
        RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
    </IfModule>
    [...]

如您所见,除 myexamplesite1.com 之外的所有内容都被重定向到 HTTP 版本。

现在的问题是,如果我输入 https://myexamplesite2.com,浏览器首先会要求确认蛇油证书(即请求位于 default-ssl 中)。一旦证书被接受,就会重定向到 HTTP 版本。我只是不明白为什么。

我希望首先重定向。没有证书问题。那可能吗?我错过了什么?

如果有必要,我也愿意显示一个不存在的 HTTPS 站点。

【问题讨论】:

    标签: apache redirect ssl


    【解决方案1】:

    如果我理解正确,您希望在浏览器显示“证书错误/无 CA”警告之前将客户端重定向到 HTTP 站点。

    但它们是个问题... SSL/TLS 在网络堆栈中比 HTTP 更低。 只有在您拥有安全套接字之后,才会启动 HTTP 协议。

    所以没有。你不能这样做,否则 HTTPS 将被 MITM 攻击完全破坏......

    【讨论】:

      猜你喜欢
      • 2016-01-17
      • 2018-04-09
      • 1970-01-01
      • 2019-12-17
      • 2013-09-27
      • 2016-02-04
      • 2018-03-08
      • 1970-01-01
      • 2022-01-06
      相关资源
      最近更新 更多