我正在完全通过 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