服务器名称指示(SNI)是什么东东?

Posted wecloud1314

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器名称指示(SNI)是什么东东?相关的知识,希望对你有一定的参考价值。

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

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

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

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

什么是SNI

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

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

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

 

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

SNI的未来?

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

 

以上是关于服务器名称指示(SNI)是什么东东?的主要内容,如果未能解决你的问题,请参考以下文章

从 TLS 客户端 hello 中提取服务器名称指示 (SNI)

当服务器使用服务器名称指示 (SNI) 扩展时,如何使用 HttpClient 4.5.2 和 JDK 1.8 获取 HTTPS Web 资源?

IIS 8.5 上的 SNI 和 SSL

SNI协议分析

使用 SNI 通过 HTTPS 提供服务时出现 CloudFront 错误

Nginx与Trojan共用443