我們是一個多租戶服務,並在負載平衡器上終止我們的 SSL(HAProxy + Apache 用於 SSL 終止),由於專用 IP 要求,這導致了成長的煩惱。但時代已經變了,我們正在考慮轉向 SNI,所以我希望在 2015 年能得到關於採用它作為我們的標準的有根據的意見。
我將概述我們的假設:
- 由於 POODLE 攻擊,SSL 已失效(TLS 長存),
- TLS 內建了 SNI
- IE6 / Windows XP (< sp3) 因多種原因而消亡,其中最重要的是 XP 即將停產
- 目前我們已經終止了對 IE7 和 IE8 的支持
我假設 SNI 現在基本上得到全球支持是否正確?
... 和 ...
除此之外,我是否還應該考慮會影響支援的場景?
....最後...
現在 HAProxy 1.5 直接支援 SSL 終止,您的經驗中是否有任何與 SNI 直接相關的警告會影響我們推出此服務的能力?
答案1
我假設 SNI 現在基本上得到全球支持是否正確?
如果您考慮瀏覽器 - 是的。
如果您必須處理其他類型的應用程式 - 並非如此:
- Python 3 已支持,但 Python 2.7 已支援。僅支援剛發布的版本 2.7.9
- Android 的支援有限。 HTTPUrlConnection 已經支援很久了,但 SDK 包含舊版的 Apache HTTPClient,用於更進階的功能,而且該版本不支援 SNI。不知道最新的SDK有沒有改變這種情況。
- Java 僅在 JDK 1.7 中獲得支持
- 仍然有一些搜尋引擎爬蟲不支援 SNI。根據https://www.mnot.net/blog/2014/05/09/if_you_can_read_this_youre_sniing這包含在 05/2014 Bing、Yahoo、Baidu 等。
答案2
我假設 SNI 現在基本上得到全球支持是否正確?
本質上,是的 - 儘管您可能會遇到一些邊緣情況用戶,他們會抱怨如果需要 SNI,就會出現問題。如果您有能力告訴那些人「請使用本世紀以來的瀏覽器」來提供您的服務,那麼您就準備好了。
除此之外,我是否還應該考慮會影響支援的場景?
瀏覽器/客戶端作業系統支援是最重要的,儘管我可以想像使用 SSL 終止代理的企業網路存在其他一些有趣的問題,這些代理程式不支援傳遞 TLS 握手的 SNI 部分,這也會破壞 SNI。
現在 HAProxy 1.5 直接支援 SSL 終止,您的經驗中是否有任何與 SNI 直接相關的警告會影響我們推出此服務的能力?
我無法直接談論 HAProxy 的警告 - 我們使用的是它的 SSL 終止,但不是在它之上使用 SNI。