G'日
我们希望使用SNI在基于云的单一IP解决方案上托管SSL网站。可以.net在TLS握手之前和HTTP上确定客户端是否具有SNI功能吗?
答案 0 :(得分:0)
在TLS握手之前,“”的含义尚不清楚。
服务器名称扩展名在客户端Hello消息中,这是客户端发起的第一个发起握手的TLS消息。由于HTTPS也始终首先建立TLS连接,因此之前没有任何事情发生。在握手之前知道客户端是否具有SNI能力是不可能的。
您可以使用JavaScript to try to detect SNI support在客户端进行排序。
这就是说,它不太可能解决您的一般问题:如果您在不支持SNI时拥有后备/通配符证书,那么获得其他特定证书几乎没有意义(除了widlcard证书not recommended之外);如果您期望SNI,您将阻止不支持SNI的客户。
答案 1 :(得分:0)
如果您查看维基百科,它会将以下内容列为SNI兼容。
因此,如果您在HTTP
中启动连接,则可以检查useragent
并检测客户端是否支持SNI
,以及是否将其重定向到HTTPS
将它们保持在HTTP
。
在我们的案例中,我们关心的唯一不与SNI兼容的网络浏览器是XP上的IE ...