浅谈SNI

浅谈SNI来自维基百科的解释 服务器名称指示 英语 Server Name Indication 缩写 SNI 是 TLS 的一个扩展协议 在该协议下 在握手过程开始时客户端告诉它正在连接的服务器要连接的主机名称 这允许服务器在相同的 IP 地址和 TCP 端口号上呈现多个证书

大家好,我是讯享网,很高兴认识大家。

来自维基百科的解释:服务器名称指示(英语:Server Name Indication,缩写:SNI)是TLS的一个扩展协议,在该协议下,在握手过程开始时客户端告诉它正在连接的服务器要连接的主机名称。这允许服务器在相同的IP地址和TCP端口号上呈现多个证书,并且因此允许在相同的IP地址上提供多个安全(HTTPS)网站(或其他任何基于TLS的服务),而不需要所有这些站点使用相同的证书。它与HTTP/1.1基于名称的虚拟主机的概念相同,但是用于HTTPS。所需的主机名未加密,因此窃听者可以查看请求的网站。

总体来说就是实现了一个IP/端口可以建立多个域名的TLS连接技术; 支持SSLv3/TLSv1即可使用SNI;

对于SNI的实现,以下来自参考https://shansing.com/read/355/

nginx / apache 服务器端实现

Nginx 和 Apache 服务端支持 SNI 参见:


讯享网

支持SNI的浏览器、服务器、库

  • Internet Explorer 7 及更高版本(Windows Vista 及更高版本操作系统上的),Windows XP 的 Internet Explorer 总不支持,哪怕是 Internet Explorer 8。
  • Mozilla Firefox 2.0 及更高版本
  • Opera 8.0 及更高版本 (必须开启 TLS 1.1 协议)
  • Opera Mobile 至少是 10.1 beta 的 Android 版本
  • Google Chrome (Vista 或更高版本;XP 上的话要求 Chrome 6 及更高版本;OS X 10.5.7 及更高版本要求 Chrome 5.0.342.1 及更高版本)
  • Safari 2.1 及更高版本 (Mac OS X 10.5.6 及更高版本或 Windows Vista 及更高版本)
  • Konqueror/KDE 4.7 及更高版本
  • MobileSafari (在 Apple iOS 4.0 及更高版本的环境下的)
  • Android 默认浏览器 (在 Honeycomb 及更高版本的)
  • Windows Phone 7
  • MicroB (在 Maemo 下的)

支持SNI的服务器

  • Apache 2.2.12 及更高版本 使用 mod_ssl (或用试验性的 mod_gnutls 代替)
  • Cherokee 如果编译了 TLS 支持
  • 打了补丁的 lighttpd 1.4.x 或 1.5.x ,1.4.24+ 没打补丁就行
  • Nginx 在以 SNI 为支持的 OpenSSL 的陪同下
  • LiteSpeed 4.1 及更高版本
  • Pound 2.6 及更高版本
  • Apache Tomcat (Java 7) 及更高版本
  • Microsoft Internet Information Server (IIS) 8

支持SNI的库

  • Mozilla NSS 3.11.1 仅在客户端
  • OpenSSL
  • 0.9.8f (2007年10月11日发布) - 不缺省编译,可用设置选项 ‘–enable-tlsext’ 编译
  • 0.9.8j (2009年1月7日发布) 至 1.0.0 (2010年3月29日发布) – 缺省编译
  • GNU TLS
  • libcurl / cURL 至少 7.18.1 (2008年3月30日) 在 SNI 支持下编译一个 SSL/TLS 工具包
  • Python 3.2 (ssl, urllib 和 httplib 模块)
  • Qt 4.8
  • Oracle Java 7 JSSE
    参考文档:http://blog.hesey.net/2012/02/sni-for-multi-domain-ssl-tls.html
    http://serverfault.com/questions//multiple-ssl-domains-on-the-same-ip-address-and-same-port

在共享 IP 主机上添加 SSL 支持

按照一般步骤安装 SSL 证书【生成证书请求文件(顺便生成私钥)→到 SSL 服务商生成证书→合并证书扔进去】,然后修改下网站资源链接即可。只要主机面板(如 cPanel)有相关选项,就应该没有内部技术问题(少数时候服务器不支持,此时应该联系主机商)。

cPanel 下“SSL/TLS 管理器”中的“管理 SSL 主机”会提示道:

注意:您没有一个独立 IP。因此,当用户访问您任何一个 SSL 网站时,不支持 SNI 的浏览器很可能会向用户发出安全警告。Windows XP 上的 Microsoft Internet Explorer 是最广泛使用而不支持 SNI 的浏览器。

小讯
上一篇 2025-03-01 10:03
下一篇 2025-02-14 18:20

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/129396.html