在关闭 SSL 的情况下,是否可以在端口 443 上运行 Apache VirtualHost?

在关闭 SSL 的情况下,是否可以在端口 443 上运行 Apache VirtualHost?

我正在完全通过 SSL 运行一个网站,在 Apache 前面使用负载平衡器进行所有证书处理和解密。我让 HTTP 流量通过负载平衡器,这样 Apache 就可以处理重定向。当流量重定向到 HTTPS 页面时,负载平衡器会进行解密并将请求转发到我想要的任何端口。

http --> 负载均衡器:80 --> apache:80 --> 301 url:443

https --> 负载均衡器:443 --解密流量 --> apache:我想要的任何端口

我可以对所有 vhost 使用除 80 之外的任何端口以避免重定向循环(端口 444 在下面配置中工作正常),但为了使 Apache 配置与非生产环境保持一致,我想知道是否可以对 VirtualHosts 使用端口 443,尽管 Apache 中实际上并未启用 SSL。

我认为我可以SSLEngine off强制<VirtualHost *:443>这个端口不使用 SSL,因为作为默认 SSL 端口 Apache 似乎尝试启用 SSL,但是 Apache 在 Debian 6 上不会以此配置启动。(顺便说一下,我已经注释掉了 /etc/apache2/ports.conf 中的所有内容。)

[error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile]

那么...如何在禁用 SSL 的情况下使用端口 443?

NameVirtualHost *:80
Listen 80
<VirtualHost *:80>

    # Force SSL
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [R=301,L]

</VirtualHost>

NameVirtualHost *:443
Listen 443
<VirtualHost *:443>
   SSLEngine Off
   DocumentRoot /var/www
   <Directory /var/www/>
        Options All
        AllowOverride All
        Order allow,deny
        allow from all
   </Directory>
</VirtualHost>

答案是完全禁用 mod-ssl

sudo a2dismod ssl
sudo apachectl restart

答案1

答案是完全禁用 mod-ssl

sudo a2dismod ssl
sudo apachectl restart

答案2

在 ports.conf 中将端口 443 定义为 http (适用于 debian)

例如

名称虚拟主机 *:443

收听 443 http

相关内容