Apache2 SSL設定-apache總是選擇第一個基於ip的虛擬主機

Apache2 SSL設定-apache總是選擇第一個基於ip的虛擬主機

我們有一台運行 Apache 2.2.14 的 Ubuntu 10.04 伺服器,有 4 個基於 IP 的虛擬主機。我們有 2 個 IP 位址,每個 IP 位址都有一個 ssl 憑證。前任:

<VirtualHost 1.1.1.1:80>
<VirtualHost 1.1.1.1:443> -> SSL 1

<VirtualHost 2.2.2.2:80>
<VirtualHost 2.2.2.2:4443> -> SSL 2

無論我們做什麼,由於某種原因,Apache 在處理 https 請求時總是會找到包含的第一個虛擬主機,但不會找到第二個虛擬主機。這會導致 apache 從兩個 ip 位址包含的第一個虛擬主機提供 ssl 憑證。這是非常不希望有的結果。

所有IP位址配置均正確。運行apache2ctl -S表明所有配置都正確。

我們不使用任何基於名稱的虛擬主機。

首先包含哪一個 :443 vhost 並不重要,apache 將只從包含的第一個 vhost 提供憑證。

據我們了解,如果 apache 沒有找到 ip 位址:連接埠的虛擬主機,它將預設使用它找到的第一個虛擬主機作為預設值。

為什麼會發生這種情況呢?

答案1

看起來 Apache2 需要ServerName所有<VirtualHost>s 的指令。我們的兩個 SSL 虛擬主機最終具有相同的 IP 位址ServerName,其中一個最終成為兩個 IP 位址的預設值。

相關內容