Apache-2.2

是否可以在關閉 SSL 的情況下在埠 443 上執行 Apache VirtualHost?

  • January 24, 2013

我正在使用 Apache 前面的負載均衡器完全通過 SSL 執行一個站點,執行所有證書處理和解密。我讓 HTTP 流量通過負載平衡器,這樣 Apache 就可以處理重定向。當流量被重定向到 HTTPS 頁面時,負載均衡器會進行解密並將請求轉發到我想要的任何埠。

http –> 負載均衡器:80 –> apache:80 –> 301 url:443

https –> load balancer:443 –decrypted traffic–> apache:ANY PORT I WANT

我可以為我的所有虛擬主機使用除 80 之外的任何埠以避免重定向循環(埠 444 在下面的配置中工作正常),但為了使 Apache 配置與非生產環境保持一致,我想知道我是否可以使用埠 443儘管實際上在 Apache 中未啟用 SSL,但對於 VirtualHosts。

我想我可以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

答案是完全禁用 mod-ssl

sudo a2dismod ssl
sudo apachectl restart

在您的 ports.conf 中將埠 443 定義為 http(對於 debian)

例如

名稱虛擬主機 *:443

聽 443 http

引用自:https://serverfault.com/questions/369523