Ssl

每個子域都需要自己的 SSL 證書嗎?

  • June 24, 2021

我正在創建一個 websocket 伺服器,它將在ws.mysite.example. 我希望 Web 套接字伺服器進行 SSL 加密以及domain.exampleSSL 加密。我是否需要為我創建的每個子域購買新證書?我創建的每個子域都需要一個專用 IP 地址嗎?我可能會有多個子域。

我正在使用在 Ubuntu 上執行的 NGINX 和 Gunicorn。

我將分兩步回答這個問題……

您是否需要為每個子域提供 SSL 證書?

是和否,這取決於。您的標準 SSL 證書將用於單個域,例如www.domain.example. 除了標準的單域證書之外,您還可以使用不同類型的證書:萬用字元和多域證書。

  • 將為類似的東西頒發萬用字元證書*.domain.example,客戶端會將其視為對任何以 結尾的域有效domain.example,例如www.domain.exampleor ws.domain.example
  • 域證書對預定義的域名列表有效。它通過使用證書的主題備用名稱欄位來完成此操作。例如,您可以告訴 CA 您想要domain.example和的多域證書ws.mysite.example。這將允許它用於兩個域名。

如果這些選項都不適合您,那麼您需要擁有兩個不同的 SSL 證書。

每個子域都需要一個專用 IP 嗎?

同樣,這是一個是與否……這完全取決於您的 Web/應用程序伺服器。我是一個 Windows 人,所以我會用 IIS 範例來回答。

  • 如果您執行的是 IIS7 或更早版本,那麼您將被迫將 SSL 證書綁定到一個 IP,並且您不能將多個證書分配給一個 IP。如果您為每個子域使用專用 SSL 證書,這將導致您需要為每個子域使用不同的 IP。如果您使用的是多域證書或萬用字元證書,那麼您可以使用單個 IP,因為您一開始只有一個 SSL 證書。
  • 如果您執行的是 IIS8 或更高版本,則同樣適用。但是,IIS8+ 包括對稱為伺服器名稱指示 (SNI) 的支持。SNI 允許您將 SSL 證書綁定到主機名,而不是 IP。因此,用於發出請求的主機名(伺服器名稱)用於指示 IIS 應該為請求使用哪個 SSL 證書。
  • 如果您使用單個 IP,那麼您可以配置網站以響應對特定主機名的請求。

我知道 Apache 和 Tomcat 也支持 SNI,但我對它們還不夠熟悉,不知道哪些版本支持它。

底線

根據您的應用程序/Web 伺服器以及您能夠獲得的 SSL 證書類型將決定您的選擇。

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