基于名称的虚拟主机允许多个DNS主机名由同一IP地址上的单个服务器(通常为Web服务器)托管。为了实现这一点,服务器使用客户端提供的主机名作为协议的一部分(对于HTTP,名称显示在主机头中)。但是,当使用HTTPS时,TLS握手发生在服务器看到任何HTTP头之前。因此,服务器不可能使用HTTP主机头中的信息来决定呈现哪个证书,并且因此只有由同一证书覆盖的名称才能由同一IP地址提供。
所以,需要由SNI协议在握手时提供主机名的信息。
如果我们要对流量进行识别,做流量检测等,HTTPS流量是加密的,很难检测其内部的具体内容。SNI协议给出了一个切入点,在HTTPS协议建立加密连接的开始阶段检测出访问的域名信息。
抓取访问HTTPS的数据包,之后,通过使用显示过滤器语句 ssl.handshake 来过滤出想要的报文。分析报文发现server_name的扩展字段只存在于Client Hello这个过程中。
接下来,进一步过滤,使用显示过滤器语句 ssl.handshake.extensions_server_name ,提取出包含SNI协议的Client Hello报文。
下面这个箭头所指表示了SNI协议的格式,
Type(2B) | Length(2B) | Server Name list length(2B) | Server Nma Type(1B) | Server Name length(2B) | Server name
SNI: 实现多域名虚拟主机的SSL/TLS认证: https://shansing.com/read/355/
RFC6066: https://tools.ietf.org/html/rfc6066#page-5
网站的安全证书不受信任原因一:网站证书不是由受信任的证书颁发机构颁发的出现“SSL证书错误”还有一种情况是证书不在浏览器厂商的受信任的列表中。可通过手动添加证书安装到浏览器的“信任列表”。受信任的根证书需嵌入到流行的浏览器中,如IE、Firefox、Chrome、Apple等,如果浏览器遇到未由其中一个根签名的证书,则表明它不受信任,访问者将看到网页证书错误的消息。建议使用权威CA机构颁发的SSL证书。
网站的安全证书不受信任原因二、证书名称“不匹配”
当服务器提供的SSL证书上列出的域名与浏览器连接的域名不匹配时,会出现“证书名称不匹配”,导致网页证书错误。要开始HTTPS连接,证书上的域名必须与浏览器地址栏中的域名完全匹配。 建议安装部署SSL证书时正确填写域名信息,另外浏览网页时检查输入的地址是否正确。
网站的安全证书不受信任原因三、SSL证书已过期或还未生效
当出现“SSL证书错误”时,首先一定要确认好证书是否在有效期,也有可能是电脑系统日期错误。可通过查看该证书信息的有效起止日期,确定证书是否在有效期内,如在的话需查看电脑日期是否正确。否则就是第二种原因,SSL证书不在有效期内,需尽快联系证书颁发CA,进行续费。
网站的安全证书不受信任原因四、启用SNI的服务器造成的
这更多是设备之间存在的内部问题,但有时客户端在未启用SNI时与服务器名称指示服务器通信可能是SSL / TLS协议错误的原因。 您需要做的第一件事是确定有问题的服务器的主机名和端口号,并确保它已启用SNI以及它正在传达它需要的所有内容。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)