在HTTPS 大热的今日,SSL证书已成为了HTTPS加密协议最常见的解决方案。虽然在安全方面,HTTPS完胜HTTP。但在性能方面,HTTPS中的SSL证书仍存在一些问题。如基于名称的主机不能很好地处理SSL。

在过去的HTTP时代,解决基于名称的主机在同一IP地址上托管多个网站的问题并不难。当一个客户端请求某特定网站时,把请求的域名作为主机头(Host)放在HTTP Header中,服务器端知道应该把请求引向哪个域名,并把匹配的网站传送给客户端。

但使用HTTPS时就无法故技重施了。因为在SSL握手的过程中,不会有Host的信息,所以服务器端通常返回的是配置中的第一个可用证书。因而一些较老的环境,可能会产生多域名分别配好了证书,但返回的始终是同一个。

为了解决这个问题,SNI(服务器名称指示)从而诞生。

  什么是SNI

SNI(Server Name Indication),中文名为服务器名称指示,是对SSL / TLS协议的扩展,允许在单个IP地址上承载多个SSL证书。 SNI这样做的方法是将HTTP头插入到SSL握手中,提交请求的 Host 信息,使得服务器能够切换到正确的域并返回相应的证书。

在SNI出现之前,加密每个网站都必须对每个IP地址都部署SSL证书。但这是一笔昂贵的预算,并且IPv4的 IP也存在不少问题。

IP地址的数量是有限的,IPv4参与使用Internet协议进行通信的计算机网络的每个设备分配地址。

全球上一共只有大约40亿万个IPv4 IP地址,总有一天所有地址终会被消耗殆尽。而在SNI出现之前,其消耗的速度比目前要快很多。可见,SNI的存在是为IPv4续命。

  SNI的未来?

SNI最大的担忧是其可扩展性。一开始,有人认为网络浏览器和服务器不会很快采用这种技术。事实证明,这种担忧在很大程度上是无根据的,根据Akamai的说法,如今几乎98%的客户要求支持HTTPS的网站支持SNI。

作为国内信息安全服务商数安时代(GDCA)认为SNI将会有助于SSL证书的功能完善,并推动HTTPS协议的发展,为广大站长提供更好的方式管理SSL证书。