apache2 https 重定向到 http 无需 SSL 证书

apache2 https 重定向到 http 无需 SSL 证书

我们有一个 apache 服务器,它托管多个域,其中一些启用了 https,一些则没有。

现在的问题是,如果我访问https://exampleWithoutHttps我将谈到https://exampleWithHttps

我想转发该用户https://exampleWithoutHttpshttp://exampleWithoutHttps在所有没有 https 的域上。我尝试在虚拟主机 *:443 中创建重定向规则,但这会产生以下错误:

服务器应支持 SSL,但未配置证书

问题是我无法将“Listen 443”更改为“Listen 443 http”,因为这会破坏启用了 SSL 的主机。

有没有办法可以在没有 SSL 证书的情况下进行重定向?

或者如果不可能的话,你能否提出一个替代方案来确保 https://exampleWithoutHttps不显示内容 https://exampleWithHttps

我的 ports.conf

名称虚拟主机 *:80
听 80
名称虚拟主机 *:443
收听 443

mi 站点配置:

<VirtualHost *:80>
 DocumentRoot /path/to/dr
 ServerName  exampleWithoutHttps.com
 ServerAlias www.exampleWithoutHttps.com
</VirtualHost>

<VirtualHost *:443>
 ServerName  exampleWithoutHttps.com
 ServerAlias www.exampleWithoutHttps.com
 Redirect permanent /   http://www.exampleWithoutHttps.com/
</VirtualHost>

答案1

为您配置任何证书,VirtualHost *:443您就完成了。

  • 可以只是您自己生成的自签名证书。当然,用户会看到安全警告。这是意料之中的。用户特别想要 https,其中 s 代表secure。您没有有效的证书,例如,WithoutHttps.com,因此您无法向他们提供security——他们确实受到了有关此事的警告。
  • 您还可以从一些供应商处免费获得有效证书。

VirtualHost *:443将of放在ofServerName exampleWithoutHttps.com之前。我的意思是将其以文本形式放置在 Apache 配置文件中的第一个位置。这可确保用户不会看到 exampleWithHttps 中的内容。VirtualHost *:443ServerName exampleWithHttps.com

答案2

我想转发该用户https://exampleWithoutHttpshttp://exampleWithoutHttps在所有没有 https 的域上。

为了进行重定向,您需要先设置 https 连接。如果没有有效的证书等,则无法设置 https 连接。

所以要回答这个问题,你做不到。嗯,无论如何,这都无法让大多数对安全有所担忧的人满意。

相关内容