检测浏览器的SNI支持

8

我想知道除了验证用户代理并猜测之外,是否有任何方法可以找出发出HTTP请求的浏览器是否支持SNI。

我会考虑服务器或客户端选项。

我的目标是为指向同一PHP应用程序的多个域设置SSL证书。然后,我将尝试查找发出请求的客户端是否支持SNI,如果是,则将其重定向到启用SSL的版本。

1个回答

5

首先,我们知道当前支持SNI的浏览器:

Opera 8.0; MSIE 7.0(但仅适用于Windows Vista或更高版本); Firefox 2.0和使用Mozilla平台rv:1.8.1的其他浏览器; Safari 3.2.1(Windows版本在Vista或更高版本上支持SNI); Chrome(Windows版本也支持Vista或更高版本上的SNI)。

因此,一种廉价的方法是确定浏览器类型,如果它是上述浏览器之一,则具有SNI。

虽然这不是最佳实践(优先考虑功能检测),但似乎无法避免,因为SNI检测需要SSL握手。因此,在SSL证书失败后再进行操作已经为时过晚。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接