SNI为2015年的多租户负载平衡

我们是一个多租户服务,并在我们的负载均衡器(HAProxy + Apache for SSL终止)中终止我们的SSL,由于专用IP需求,这已经引起了越来越大的痛苦。 但时代已经改变,我们正在考虑转向SNI,所以我希望2015年的教育意见能够把它作为我们的标准。

我将概述我们的假设:

  • 由于POODLE攻击,SSL已经死亡(长寿命TLS)
  • TLS内置了SNI
  • IE6 / Windows XP(<sp3)由于多种原因而死亡,其中最重要的就是XP要进入EOL
  • 在这一点上,我们已经终止了对IE7和IE8的支持

我认为现在SNI基本上是全球支持的吗?

…和…

除此之外,我还应该考虑哪些情况会影响支持?

最后…

既然HAProxy 1.5直接支持SSL终止,那么直接与SNI有关的经验是否会影响到我们推出这项服务的能力呢?

我认为现在SNI基本上是全球支持的吗?

如果你考虑浏览器 – 是的。

如果你必须处理其他types的应用程序 – 不是真的:

  • Python 3支持,但Python 2.7。 只获得了刚发布的2.7.9版本的支持
  • Android有限的支持。 HTTPUrlConnection已经支持了很长时间,但是SDK包含了一个老版本的Apache HTTPClient,用于更高级的东西,而这个版本不支持SNI。 我不知道最新的SDK是否改变了这个情况。
  • Java只得到了JDK 1.7的支持
  • 对于那些不支持SNI的search引擎,还有一些爬虫。 根据https://www.mnot.net/blog/2014/05/09/if_you_can_read_this_youre_sniing这个载于05/2014 Bing,雅虎,百度等。

我认为现在SNI基本上是全球支持的吗?

本质上,是的 – 尽pipe如果需要SNI,您可能会碰到一些边缘案例用户,他们会抱怨破碎。 如果你有能力告诉这些人“使用这个十年的浏览器,请”为你服务,那么你就定了。

除此之外,我还应该考虑哪些情况会影响支持?

浏览器/客户端操作系统的支持是最重要的,尽pipe我可以想象使用SSL终止代理的公司networking的一些其他有趣的问题,不支持通过TLS握手的SNI部分,这也会打破SNI。

既然HAProxy 1.5直接支持SSL终止,那么直接与SNI有关的经验是否会影响到我们推出这项服务的能力呢?

我不能直接说出HAProxy的警告 – 我们正在使用它的SSLterminal,但不是SNI的顶部。