阿里云99元服务器,新老用户均可买,99元/年续费到2027年,396元4年,多配置特价...
什么是SNI信息?SNI信息有什么作用?SNI信息可以解决HTTPS协议中,单个IP对应多个SSL证书(多个域名共享一个IP)的解决方法:
什么是SNI?
SNI(Server Name Indication)是为了解决一个服务器使用多个域名和证书的SSL/TLS扩展。文章源自新手站长-https://xinshouzhanzhang.com/sni-https-ssl.html
SNI信息:SNI(Server Name Indication)主要用来解决一台服务器只能使用一个证书(一个域名)的缺点,随着服务器对虚拟主机的支持,一个服务器上可以为多个域名提供服务,当服务器使用单一IP提供多个域名的HTTPS服务时,客户端在发起的请求中会携带SNI信息,指明所请求的域名,使得服务器能够切换到正确的域名并返回相应的证书。文章源自新手站长-https://xinshouzhanzhang.com/sni-https-ssl.html
SNI产生的背景:
随着虚拟主机的兴起,服务器开启对虚拟主机的支持后,一个服务器IP要对应多个网站域名。当设置了SSL加密,服务器在读取HTTP请求里面的域名之前已经向客户端提交了证书,这会导致使用了错误的数字证书,因为服务器端无法知道客户端到底请求的是哪个域名下的服务,从而导致浏览器对用户发出警告。一个服务器可能为上千个域名提供服务,不可能将所有证书都发送给客户端,让客户端一一验证,找到与请求域名对应的证书。SNI的设计目的是为了让服务器根据请求来决定为哪个域服务,这个信息通常从HTTP请求头获得。文章源自新手站长-https://xinshouzhanzhang.com/sni-https-ssl.html
SNI工作原理
SSL握手信息中并没有携带客户端要访问的目标地址,这会导致一个问题,即如果一台服务器有多个虚拟主机,且每个主机的域名不一样,使用了不一样的证书,该返回哪一个给客户端?文章源自新手站长-https://xinshouzhanzhang.com/sni-https-ssl.html
SNI工作原理:在连接到服务器建立SSL链接之前先发送要访问站点的域名(Hostname),这样服务器根据这个域名返回一个合适的证书。文章源自新手站长-https://xinshouzhanzhang.com/sni-https-ssl.html
Client Hello包中SNI信息携带
在Client Hello中补上Host信息,SNI在TLSv1.2开始得到协议的支持,当然还需要服务端和客户端都支持。文章源自新手站长-https://xinshouzhanzhang.com/sni-https-ssl.html
Client Hello抓包如下:文章源自新手站长-https://xinshouzhanzhang.com/sni-https-ssl.html
Extension: server_name Type: server_name (0x0000) Length: 16 Server Name Indication extension Server Name list length: 14 Server Name Type: host_name (0) Server Name length: 11 Server Name: nex.163.com
这个扩展信息就指定了该SSL握手信息的目标域名为nex.163.com
,所以有了SNI扩展信息,单个IP对应多个域名的服务器就知道如何反馈证书了。文章源自新手站长-https://xinshouzhanzhang.com/sni-https-ssl.html
文章源自新手站长-https://xinshouzhanzhang.com/sni-https-ssl.html
【阿里云99元服务器】入口2核2G3M带宽、新老用户同享、99元/年续费到2027年
2023阿里云优惠活动:xinshouzhanzhang.com/go/aliyun
注意:以上特价轻量服务器限制条件为“产品首单特惠”,如果你的腾讯云账号已经是老用户,建议重新注册一个腾讯云账号,如果你是新用户符合条件,那么无脑入,确实值得。