Apache-2.2

不帶 www 的域的 SSL 證書

  • November 9, 2012

我目前有一個為https://www.domain.com註冊的 SSL 證書。我沒有註冊https://domain.com,也沒有錢去做。

由於 SSL 交換是在載入實際站點之前完成的,因此我不能簡單地將重定向放在 .htacess 中,而客戶端不會收到 SSL 警告。無論如何我可以確保在 SSL 交換之前將所有https://domain.com重定向到https://www.domain.com嗎?也許直接在 Apache 伺服器上或在 DNS 中?

主機名驗證是一種客戶端機制(如 HTTPS 規範,RFC 2818,第 3.1 節中所述)。客戶端將在任何 HTTP 流量發生之前(特別是在任何重定向之前)檢查證書對於它所請求的主機名是否有效。Apache 重定向或 DNS 更改將沒有任何用處。

您只需要 Web 伺服器提供對請求的主機名有效的證書。

通過具有多個主題備用名稱 (SAN) DNS 條目,某些證書可以對多個主機名有效,例如domain.comwww.domain.com. 有些 CA 預設這樣做,有些則需要額外付費。

(萬用字元證書也可用於處理多個主機名,只要它們遵循正確的模式,例如*.domain.com。不幸的是,domain.com不匹配,*.domain.com因為點是模式的一部分。一些萬用字元證書將同時domain.com具有*.domain.comSAN如果是 SAN 機制將用於domain.com,與萬用字元無關。)

您還可以使用伺服器名稱指示 (SNI) 並在該主機上擁有一個額外的不同證書domain.com(在 for 旁邊www.domain.com)。不幸的是,某些客戶端不支持它(可能是舊的,但它們仍然存在),這肯定是沒有意義的,因為大多數為其頒發證書的 CAdomain.com肯定會www.domain.com自動包含在另一個 SAN 中。

無論哪種方式,如果您希望能夠提供服務https://domain.com(即使只是為了重定向),您必須獲得一個對其有效的新證書(至少)。

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