将没有证书的站点重定向到非 SSL 站点,而不是提供默认证书

将没有证书的站点重定向到非 SSL 站点,而不是提供默认证书

我托管了我们客户的几个网站。其中一些网站有 SSL 证书,因此使用端口 443 进行 https 访问,而另一些网站没有证书。
拥有此类证书的网站配置为自动将 http 重定向到 https。如果我访问其中一个没有自己证书的网站,则会提供首先加载的 vhost 文件中的网站,在我的情况下,这是我自己的主页。

我现在想知道是否可以让 apache 将 ssl 请求重定向到没有自己的证书的站点到非 ssl,这样它就不会给出“不受信任的证书”警告。

例子:

  • domain1.com-已启用 SSL(首先加载)
  • domain2.com-已启用 SSL
  • domain3.com-未启用 SSL

当我请求https://domain3.com我收到不受信任的警告,因为提供了 domain1.com 的证书,当然它不包含 domain3.com 作为主要名称或备用名称。
相反,我希望重定向到http://domain3.com

我已经尝试了以下配置,但在访问 domain3.com 时出现 SSL 错误

<VirtualHost MyIp:443>
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>

我不确定我的方法是否正确,或者我的目标是否可以实现。所以我愿意接受各种帮助。谢谢。

答案1

如果没有有效的证书,这是不可能的。

对于 https,首先进行 TLS/SSL 协商,任何内容(包括重定向)都会发生。因此,您需要建立安全连接(使用证书),然后才能重定向回 http。

如果有任何方法可以解决这个问题,那么这将成为 https 中的一个重大安全漏洞,因为攻击者可以将任何请求降级为 http。

相关内容