什么是 SNI?_snidel中文
中文 什么
2023-06-13 09:12:58 时间
介绍
是什么:SNI(Server Name Indication)是 TLS 的扩展,这允许在握手过程开始时通过客户端告诉它正在连接的服务器的主机名称。
作用:用来解决一个服务器拥有多个域名的情况。
在客户端和服务端建立 HTTPS 的过程中要先进行 TLS 握手,握手后会将 HTTP 报文使用协商好的密钥加密传输。
握手参考:链接
在 TLS 握手信息中并没有携带客户端要访问的目标地址。这样会导致一个问题,如果一台服务器有多个虚拟主机,且每个主机的域名不一样,使用了不一样的证书,该和哪台虚拟主机进行通信?
和 HTTP 协议用来解决服务器多域名的方案类似:HTTP 在请求头中使用 Host 字段来指定要访问的域名。
TLS 的做法,也是加 Host,在 TLS 握手第一阶段 ClientHello 的报文中添加。
SNI 在 TLSv1.2 开始得到支持。从 OpenSSL 0.9.8 版本开始支持。所以基本市场上的终端设备都支持。
测试
使用 WireShark 抓包看一下 Clien tHello:
SNI信息是在握手的过程中,确切说是在客户端发送给服务端的第一个握手包中传递的信息。 这时候SSL连接还未建立起来,因此SNI信息是明文传输的。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168234.html原文链接:https://javaforall.cn
相关文章
- pycharm 中文乱码_pycharm中文字体设置
- linux系统下codeblocks控制台打印中文乱码[通俗易懂]
- pytest skipif_skip的中文是什么
- 解决ubuntu16.04中codeblocks中文显示不全的问题[通俗易懂]
- scrapy start_urls_renpy中文文档
- GoLand 2022 for Mac(GO语言集成开发工具环境) v2022.2.3中文激活版
- client的中文意思是什么_java中cin什么意思
- webservice中文乱码处理_java取session乱码问题
- origin软件下载2022版(中文正式版) 数据分析软件Origin 2023安装
- dotnet 修复 Uno 中文乱码
- MSC(中文全称:米鼠即时通讯系统),全程采用JAVA开发,是国内第一款可同时支持Windows(兼容Vista)、Linux、Unix操作系统的IM软件
- 25字中文文章标题:MySQL学习指南:从入门到精通(如何学习mysql)
- Linux中文语音合成技术:前沿与实践(linux中文tts)
- 25字中文文章标题MySQL中价格用什么数据类型存储(mysql中价格用什么)
- MySQL 数据库中的中文字符出现问号问题(mysql中中文是问号)
- MySQL中文手册专为中文用户量身定制(.mysql中文手册)
- Oracle中文报错详细分析与解决方案(Oracle中文异常)
- Redis集合中文简介(redis 集合 中文)
- 红色的可能Redis的中文翻译(redis翻译中文)
- java中form以post、get方式提交数据中文乱码问题总结