Linux

對於指向同一個 VPS IP 的每個域,我是否需要單獨的 SSL 證書?

  • February 12, 2018

在做了一些研究之後,我還沒有為我的問題找到一個明確的答案。

我目前在具有兩個 IP 地址的 VPS 上託管客戶端:

XXX.XX.XXX.XX1
XXX.XX.XXX.XX2

當我購買這個 VPS 時,據說第二個 IP 可以讓我託管我的 SSL 證書。

我想知道是否由於所有域都指向同一個 IP,我是否只需要一個涵蓋該 IP 的 SSL 證書?還是我需要涵蓋每個唯一域的單獨 SSL 證書?

SSL 證書驗證域或主機名,而不是 IP 地址。但是,大多數 Web 伺服器和瀏覽器現在都支持伺服器名稱指示 (SNI) 和主題備用名稱 (SAN),這意味著您不需要第二個 IP 地址。就此而言,您不再需要購買證書。LetsEncrypt Certbot免費為多個域提供域驗證證書。

如果您的伺服器不支持 SNI,或者您擔心不支持 SNI 的瀏覽器,您將需要每個域的證書,並且每個域都需要一個 IP 地址。

在 SNI 之前,當客戶端建立一個 https 連接時,伺服器必須接受它並解密它才能知道客戶端想要連接的 http 主機。在這種情況下,如果伺服器在同一 IP 地址上為多個 http 主機提供服務,則伺服器將始終假定客戶端想要連接到配置中的第一個有序主機。如果響應提供的證書與客戶端請求的主機不匹配,瀏覽器將生成錯誤。因此,您必須在不同的 IP 地址上執行不同的域。

在啟用 SNI 的情況下,伺服器向客戶端請求提供所有可用的證書,如果存在正確的證書,客戶端可以將其主機請求與正確的證書匹配,這意味著只有在沒有任何證書匹配時才會生成瀏覽器錯誤。

這允許您在同一 IP 地址上託管多個 https 主機。但是,您仍然需要每個域的 https 證書(免費或商業)。

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