Ssl
每個子域都需要自己的 SSL 證書嗎?
我正在創建一個 websocket 伺服器,它將在
ws.mysite.example
. 我希望 Web 套接字伺服器進行 SSL 加密以及domain.example
SSL 加密。我是否需要為我創建的每個子域購買新證書?我創建的每個子域都需要一個專用 IP 地址嗎?我可能會有多個子域。我正在使用在 Ubuntu 上執行的 NGINX 和 Gunicorn。
我將分兩步回答這個問題……
您是否需要為每個子域提供 SSL 證書?
是和否,這取決於。您的標準 SSL 證書將用於單個域,例如
www.domain.example
. 除了標準的單域證書之外,您還可以使用不同類型的證書:萬用字元和多域證書。
- 將為類似的東西頒發萬用字元證書
*.domain.example
,客戶端會將其視為對任何以 結尾的域有效domain.example
,例如www.domain.example
orws.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 證書類型將決定您的選擇。