之前我們使用的 TLS 版本無法識別包含域名的 HTTPS 請求。當只有 IP 地址被請求時,它才能正確工作。因此,每個使用安全連接的域名都需要一個專用 IP。
從 cPanel 版本 11.38 及更高版本 開始,我們可以使用 SNI。
伺服器名稱指示(SNI) 是 TLS 協議的一項擴展,用於指示客戶端嘗試連接的主機名稱。
這使伺服器能夠在同一 IP 地址和端口號上呈現多個證書,從而允許同時存在多個安全 (HTTPS) 網站(或任何其他基於 TLS 的服務)。
但是,不幸的是,可能會出現一些問題:
SNI 與某些舊版本的網頁瀏覽器不兼容。
- SNI 在 Windows XP + 任何版本的 Internet Explorer(6,7,8,9)上無法使用
- Internet Explorer 6 或更早版本
- Windows XP 上的 Safari
- BlackBerry 瀏覽器
- Windows Mobile 最高至 6.5
- Nokia 瀏覽器(例如 Series60 的 Symbian)
- Opera Mobile 在 Symbian 上至少是 Series60
網站仍然可以通過 HTTPS 訪問,但會出現證書不匹配的錯誤。
解決此問題的方法: 使用不同的瀏覽器訪問網站。此外,如果訪客同意使用不兼容瀏覽器的其他證書,則請求的網站將正常通過 HTTPS 打開,但將使用不同的證書來建立安全連接。相反,所有使用不兼容瀏覽器的訪問者將看到警告消息。
如果您嘗試使用伺服器 IP 地址獲得 HTTPS 訪問,可能會出現問題。
使用 IP 地址時,客戶端將收到我們為每個 IP 設定的 "默認" 證書(例如 serverX.web-hosting.com),並且如果 HTTPS 請求沒有指定站點名稱,則將到達在此 IP 上托管的第一個站點。
*支持 SNI 的瀏覽器列表:
- Internet Explorer 7 或更高版本,運行在 Windows Vista 或更高版本上
- Mozilla Firefox 2.0 或更高版本
- Opera 8.0(2005 年)或更高版本(必須啟用 TLS 1.1 協議)
- Opera Mobile 至少版本 10.1 beta 在 Android 上
- Google Chrome(Vista 或更高,XP 在 Chrome 6 或更高版本中,OS X 10.5.7 或更高版本在 Chrome 5.0.342.1 或更高版本中)
- Safari 3.0 或更高版本(Mac OS X 10.5.6 或更高版本和 Windows Vista 或更高版本)
- Konqueror/KDE 4.7 或更高版本
- MobileSafari 在 Apple iOS 4.0 或更高版本上
- Android 默認瀏覽器在 Honeycomb(v3.x)或更高版本上
- Windows Phone 7
- MicroB 在 Maemo 上
- Odyssey 在 MorphO