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

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:Cloudflare网络

小提示:您能找到这篇{Cloudflare:什么是SNI(服务器名称指示)?}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的Cloudflare:什么是SNI(服务器名称指示)?内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

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

SNI有点像邮寄包裹到公寓楼而不是独栋房子。将邮件邮寄到某人的独栋房子时,仅街道地址就足以将包裹发送给收件人。但是,当包裹进入公寓楼时,除了街道地址外,还需要公寓号码。否则,包裹可能无法送达收件人或根本无法交付。

许多Web服务器更像是公寓大楼而不是独栋房子:它们承载多个域名,因此仅IP地址不足以指示用户尝试访问哪个域。这可能会导致服务器显示错误的SSL证书 ,从而阻止或终止HTTPS连接–就像如果没有正确的收件人签名,包裹将无法送到指定的地址一样。

当多个网站托管在一台服务器上并共享一个IP地址,并且每个网站都有自己的SSL证书,在客户端设备尝试安全地连接到其中一个网站时,服务器可能不知道显示哪个SSL证书。这是因为SSL/TLS握手发生在客户端设备通过HTTP指示连接到某个网站之前。

服务器名称指示(SNI)旨在解决此问题。 SNI是TLS协议(以前称为SSL协议)的扩展,该协议在HTTPS中使用。它包含在TLS/SSL握手流程中,以确保客户端设备能够看到他们尝试访问的网站的正确SSL证书。该扩展使得可以在TLS握手期间指定网站的主机名或域名 ,而不是在握手之后打开HTTP连接时指定。

简而言之,即使网站https://www.example.com托管在与https://www.something.com、https://www.another-website.com和https://www.example.io 相同的地方(相同的IP地址),SNI也能让用户的设备与https://www.example.com建立安全的连接。

SNI可以防止所谓的"公共名称不匹配错误" :即客户端(用户)设备到达网站的正确 IP地址 ,但SSL证书上的名称与网站名称不匹配。通常,这种错误会导致用户浏览器中出现"您的连接缺乏隐私性"的错误消息。

SNI在2003年被添加为TLS/SSL的扩展;它最初不是协议的一部分。几乎所有的浏览器、操作系统和Web服务器都支持它,除了一些仍在使用的最旧的浏览器和操作系统。

服务器名称是什么?

尽管SNI代表服务器名称指示,但SNI实际上"表示"的是网站的主机名或域名,可以与实际托管该域的Web服务器的名称分开。事实上,将多个域托管在同一台服务器上很常见–在这种情况下,它们被称为虚拟主机名。

服务器名称就是计算机的名称。对于Web服务器,此名称通常对最终用户不可见,除非该服务器仅托管一个域并且该服务器名称与该域名等同。

TLS的SNI扩展有什么作用?





Web服务器通常负责多个主机名–或域名(网站的人类可读名称)。如果网站使用HTTPS 则每个主机名将具有其自己的SSL证书。

问题是,一台服务器上的所有这些主机名都位于同一IP地址。这在HTTP上不是问题,因为一旦打开TCP连接,客户端就会在HTTP请求中指明他们尝试访问的网站。

但是在HTTPS中,先有TLS握手,然后才能开始HTTP对话(HTTPS仍使用HTTP –它只是对HTTP消息进行加密)。如果没有SNI,客户端将无法向服务器指示正在与之通信的主机名。结果,服务器可能为错误的主机名生成SSL证书。如果SSL证书上的名称与客户端尝试访问的名称不匹配,则客户端浏览器将返回错误信息,并通常会终止连接。

SNI将域名添加到TLS握手过程,以便TLS程序到达正确的域名并接收正确的SSL证书,从而使其余TLS握手能够正常进行。

具体来说,SNI会在“Client Hello(客户端问候)”消息或TLS握手的第一步就包含了主机名。

什么是主机名?什么是虚拟主机名?

主机名是连接到网络的设备的名称。在互联网背景中,域如何选择公关公司名或网站名称是一种主机名。两者都与与域名关联的IP地址分开。



虚拟主机名是没有自己的IP地址的主机名,它与其他主机名一起托管在服务器上。它是"虚拟的" ,因为它没有专用的物理服务器,就像虚拟现实仅以数字形式存在,而不是在物理世界中一样。

如果用户的浏览器不支持SNI,会发生什么?

在这种罕见的情况下,用户可能无法访问某些网站,并且用户的浏览器将返回错误消息,例如"您的连接缺乏安全隐私。"

绝大多数浏览器和操作系统都支持SNI。仅非常旧版本的Internet Explorer、旧版的BlackBerry操作系统以及其他网站建设哪里过时的软件版本不支持SNI。

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

上一篇:Cloudflare:什么是会话密钥?
下一篇:Instagram营销攻略:5个海外网红营销案例


版权声明:以上主题为“Cloudflare:什么是SNI(服务器名称指示)?"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    Cloudflare:什么是SNI(服务器名称指示)?
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“Cloudflare:什么是SNI(服务器名称指示)?”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通Cloudflare:什么是SNI(服务器名称指示)?的相关事宜。

关键词:Cloudflare:什么是SNI(服务

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号