我们有一个 apache 服务器,它托管多个域,其中一些启用了 https,一些则没有。
现在的问题是,如果我访问https://exampleWithoutHttps我将谈到https://exampleWithHttps。
我想转发该用户https://exampleWithoutHttps到http://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 *:443
ServerName exampleWithHttps.com
答案2
我想转发该用户https://exampleWithoutHttps到http://exampleWithoutHttps在所有没有 https 的域上。
为了进行重定向,您需要先设置 https 连接。如果没有有效的证书等,则无法设置 https 连接。
所以要回答这个问题,你做不到。嗯,无论如何,这都无法让大多数对安全有所担忧的人满意。