Apache-2.2

單個域和多個域的單個證書 - Apache

  • December 15, 2011

我在具有單個 IP 地址的伺服器上託管多個網站。我有一個用於其中一個域名的證書。有沒有辦法配置 Apache,使證書僅適用於該單個域,而不適用於單個 IP 地址上的其他域?現在設置工作,但相同的證書用於所有人,這顯然不是我想要的。我不想為這些其他域設置 SSL,而是只為除一個域之外的所有域禁用 SSL 功能。

一個例子真的很有幫助!

謝謝!

由於 SSL 通常的工作方式,您想要的並不可行。當您了解 https 的工作原理時,就很容易理解為什麼。當瀏覽器建立 HTTP 連接時,首先會創建一個 TCP 連接,然後開始通過該 TCP 連接與 HTTP 協議通信。HTTP 協議為客戶端提供了一種方式來表示“我打算從名為 ‘www.example.com’ 的伺服器獲取頁面”,這個伺服器名稱是 apache 用來決定使用哪個 VirtualHost 的名稱。

使用 HTTPS,會發生什麼,建立 TCP 連接,然後協商 SSL(伺服器將證書發送給客戶端,客戶端驗證證書是否合法,他們交換會話密鑰),然後他們通過這個加密的 SSL 進行 HTTP TCP 連接,然後客戶端才能說出他們打算與哪個伺服器名稱通信。

所以這裡的問題是,在伺服器知道他們正在嘗試與哪個伺服器通信之前,他們已經協商了 SSL 連接。

伺服器名稱標識旨在擴展 SSL/TLS,以便讓客戶端指定伺服器名稱作為 SSL 協商的一部分,但它在瀏覽器中的支持範圍還不夠廣泛,無法依賴。

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