首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏nginx遇上redis

    OpenSSL的SNI(1)

    一、什么是SNISNI是Server Name Indication的缩写,是为了解决一个服务器使用多个域名和证书的SSL/TLS扩展。 在SNI出现之前,HostName信息只存在于HTTP请求中,但SSL/TLS层无法获知这一信息。 通过将HostName的信息加入到SNI扩展中,SSL/TLS允许服务器使用一个IP为不同的域名提供不同的证书,从而能够与使用同一个IP的多个“虚拟主机”更方便地建立安全连接。 二、RFC中SNI的定义 RFC 6066《Transport Layer Security (TLS) Extensions: Extension Definitions》对SNI扩展做了详细的定义

    1.3K60编辑于 2022-11-30
  • 来自专栏Laikee Tech Space

    wireshark抓包SNI

    http抓包相对而已比较简单了,tcpdump可以完成httpry(基于tcpdump)也可以 介绍一下如何抓包https的域名 tshark -p -Tfields -e ssl.handshake.extensions_server_name -Y 'ssl.handshake.extension.type == "server_name"'

    2K30编辑于 2022-04-25
  • 来自专栏全栈程序员必看

    什么是 SNI?_snidel中文

    参考: 链接1 链接2 介绍 是什么:SNI(Server Name Indication)是 TLS 的扩展,这允许在握手过程开始时通过客户端告诉它正在连接的服务器的主机名称。 SNI 在 TLSv1.2 开始得到支持。从 OpenSSL 0.9.8 版本开始支持。所以基本市场上的终端设备都支持。 测试 使用 WireShark 抓包看一下 Clien tHello: SNI信息是在握手的过程中,确切说是在客户端发送给服务端的第一个握手包中传递的信息。 这时候SSL连接还未建立起来,因此SNI信息是明文传输的。

    1.4K20编辑于 2022-09-20
  • 来自专栏技术博客文章

    CDN服务器和SNI机制

    当我们要访问某个网站的资源时,如果该网站的服务器离我们很远,这样的话响应速度就会很慢,为了让响应速度快一些,我们可以把资源分布放在各个地方,然后响应客户端的时候,把离客户端较近的资源传送给他 SNI机制 访问的时候,DNS服务器都会帮们我把域名解析成ip去访问,CDN服务器之所以能够检测到对应的域名,是因为当客户端用域名访问知乎的时候,DNS会解析成对应的ip去访问CDN服务器,然后CDN服务器可以根据SNI

    3.1K20编辑于 2021-12-15
  • 来自专栏码农心语

    深入理解nginx的https sni机制

    在使用SNI时,服务器端必须能够根据客户端发送的SNI信息来选择正确的证书进行握手。通常,服务器端配置会包含多个虚拟主机的证书信息,以便根据收到的SNI信息选择正确的证书来完成握手。   本文基于nginx,对sni的实现原理进行深入的分析。 2. 4.3 处理sni回调   在握手期间,ssl底层逻辑会解析ClientHello数据报文,发现有sni数据后,就回调前面设置好的ngx_http_ssl_servername函数了。 经过以上环节,整个sni的过程,包括证书的加载和选择的流程都已经明确了。 5. 总结   本文从ssl上下文的初始化、ssl连接的初始化、sni回调处理,到最后动态证书加载的整个流程详细说明了nginx sni的实现过程,nginx的实现逻辑清晰,简单明了,对我们未来自己去实现支持

    5.4K11编辑于 2024-04-09
  • 来自专栏Python使用工具

    SNI代理与DNS解析相结合

    SNI代理与DNS解析相结合在当今互联网时代,加密通信已成为保护用户隐私和数据安全的重要手段。而使用HTTPS协议进行加密传输更是日益普及。 针对这个问题,引入SNI(Server Name Indication)技术以及DNS解析可以带来新思路,并实现动态路由和高效转发功能。首先让我们了解一下什么是SNI。 通过利用 SNI 技术, 你能够根据不同目标地址提供定制化服务. )消息.结合SNI代理与DNS解析技术,你可以构建一个强大而灵活且具备高效转发功能 的HTTPS代理。 祝您打造一款卓越又稳定运作 的 SNI Proxy!

    99041编辑于 2023-09-04
  • 来自专栏沈唁志

    Swoole v4.6 版本新特性之 SNI 支持

    Swoole 在 v4.6.0 版本中对 SNI 进行了支持,这篇文章就对这个新特性进行一些演示和说明。 先来了解一下什么是 SNI 协议? Server Name Identification 简称 SNI,是一个扩展的 TLS 计算机联网协议,用来解决一个服务器拥有多个域名的情况。 下面就来演示 Swoole 如何设置 SNI: 首先先下载证书,这里直接使用 Swoole 测试的证书 wget -r -np -nd -P . 选项 ssl_sni_certs的参数是一个二维数组,key 为 Hostname,value 是对应的证书配置 $http->set([ 'ssl_sni_certs' => [ 通过 SNI,拥有多域名的服务器就可以正常建立 TLS 连接了。 下面是完整的测试代码: <?

    84140发布于 2021-02-04
  • 来自专栏开源部署

    CentOS 7安装SNI Proxy对HTTPS站点进行反向代理

    SNI Proxy则可以解决这个问题,我们无需在反代服务器上部署SSL证书,即可通过HTTPS访问。 于是寻思有没有什么办法在不改变访问域名的情况下成功打开https://www.google.com,这一点SNI Proxy可以实现。 最后 SNI Proxy相比nginx反向代理的好处是配置更简单,不需要在SNI Proxy服务上部署SSL证书,流量仅根据HTTP header中的HOST进行透传到目标服务器。 另外xiaoz并未在高并发的情况下做过测试,不清楚SNI Proxy能否胜任高并发任务。另外SNI Proxy + 自建DNS有奇效,你懂的。 SNI Proxy项目地址:https://github.com/dlundquist/sniproxy

    2.9K20编辑于 2022-08-13
  • 来自专栏仁扬笔记

    记一次 HTTPS 抓包分析和 SNI 的思考

    那就得说到 SNI 了! 引用维基百科的描述,它用于服务端复用 IP 地址,提供不同域名的网站服务。 > 服务器名称指示(英语:Server Name Indication,缩写:SNI)是TLS的一个扩展协议[1],在该协议下,在握手过程开始时客户端告诉它正在连接的服务器要连接的主机名称。 而 TLS 1.3,也将 SNI 信息加密了。

    1.5K00编辑于 2023-07-31
  • 来自专栏小徐学爬虫

    利用SSL证书的SNI特性建立自己的爬虫ip服务器

    本文将详细介绍如何利用的SNI(Server Name Indication)特性来自建多域名HTTPS爬虫ip服务器,让你的爬虫ip服务器更加强大! 图片1、了解SNI特性 SNI是TLS/SSL协议的一个扩展特性,它允许客户端在建立SSL连接时指定要访问的域名。这个特性使得服务器能够根据域名来选择对应的证书,从而实现多域名的HTTPS服务。 通过利用SSL证书的SNI特性,我们可以自建一个支持多个域名的HTTPS爬虫ip服务器,实现更加强大和灵活的爬虫ip功能。

    59730编辑于 2023-08-24
  • Lets Encrypt 弃用 tls-sni-01后 使用 Dnspod api 方式进行ssl泛域名续签

    方式进行 ssl 泛域名续签 最近更新:11/29/2021 今年3月份的时候,Let’s Encrypt 给我的邮箱发了好几封邮件,具体内容大概是 Let’s Encrypt因为安全性问题已经将TLS-SNI

    74310编辑于 2024-03-12
  • 来自专栏开源技术小栈

    Nginx同一个IP上多个域名配置安装SSL证书

    SNI扩展在客户端的TLS握手过程中发送,允许服务器知道客户端正在尝试连接的域名,从而能够选择正确的SSL证书。 关于SNI的支持,它确实需要客户端和服务器端的支持。 客户端(例如浏览器或其他TLS客户端)必须在TLS握手过程中发送SNI信息。在服务器端,Nginx依赖于OpenSSL库来提供SNI的支持。 因此,如果Nginx在编译时链接的OpenSSL库支持SNI,那么Nginx就能够使用SNI。 编译Nginx时,SNI的支持是由OpenSSL库决定的。 如果编译时使用的OpenSSL库支持SNI(即SSL_CTRL_SET_TLSEXT_HOSTNAME可用),那么Nginx在运行时就会启用SNI功能。 在实际部署中,只要确保服务器上的OpenSSL库支持SNI,并且Nginx是在链接了支持SNI的OpenSSL库的情况下编译的,那么SNI就可以正常工作。

    6K30编辑于 2024-03-20
  • 来自专栏世民谈云计算

    理解OpenShift(1):网络之 Router 和 Route

    req.ssl_sni -m found acl sni_passthrough req.ssl_sni,lower,map_reg(/var/lib/haproxy/conf/os_sni_passthrough.map # if the route is SNI and NOT passthrough enter the termination flow use_backend be_sni if sni # non req.ssl_sni -m found ##检查 https request 支持 sni acl sni_passthrough req.ssl_sni,lower,map_reg(/var/lib use_backend be_sni if sni # non SNI requests should enter a default termination backend rather than # if the route is SNI and NOT passthrough enter the termination flow use_backend be_sni if sni 但是,

    2.8K20发布于 2019-06-28
  • 来自专栏SSL China

    如何在同一IP地址上运行多个SSL证书?

    你需要SNI——服务器名称指示 什么是SNI?服务器名称指示是SSL的一个重要组成部分。SNI允许多个网站存在于同一个IP地址上。 那么SNI干些什么? 服务器名称指示是对SSL / TLS协议的扩展,允许在单个IP地址上承载多个SSL证书。 SNI这样做的方法是将HTTP头插入到SSL握手中。 在SNI出现之前,加密每个网站都必须具有唯一的IP地址。这毫无疑问十分昂贵,还具备快速消费IPv4 IP地址的意想不到的副作用。 在SNI出现之前,消耗的速度比现在要快得多。SNI的存在无疑是在给IPv4续命。 最终,互联网将迁移到IPv6。届时将会有超过3400亿万个IPv6地址供人使用。 SNI的前景如何? SNI最大的缺点是其扩展性。也因此,刚开始人们并不看好这项技术。不过事实证明,这种担忧在很大程度上是没有根据的。根据Akamai的说法,今天几乎98%的客户要求支持HTTPS的网站支持SNI

    2.3K40发布于 2019-07-08
  • 来自专栏云知识学习

    Nginx如何开启配置多个证书

    nginx支持TLS协议的SNI扩展(Server Name Indication,简单地说这个扩展使得在同一个IP上可以以不同的证书serv不同的域名)。 不过,SNI扩展还必须有客户端的支持,另外本地的OpenSSL必须支持它。 如果启用了SSL支持,nginx便会自动识别OpenSSL并启用SNI。 是否启用SNI支持,是在编译时由当时的 ssl.h 决定的(SSL_CTRL_SET_TLSEXT_HOSTNAME),如果编译时使用的OpenSSL库支持SNI,则目标系统的OpenSSL库只要支持它就可以正常使用 SNI了。 nginx在默认情况下是TLS SNI support disabled。 启用方法: 需要重新编译nginx并启用TLS。

    3.9K130发布于 2018-05-03
  • 来自专栏网络安全技术点滴分享

    通过Cloudflare实现域名伪装(ESNI技术详解)

    在Twitter讨论中,Nick认为使用ESNI(加密SNI)与传统域名伪装存在差异。虽然技术实现不同,但最终效果相似——都能隐藏真实请求目标。 SNI(Server Name Indication)在TLS握手阶段发送,用于服务器选择正确证书。 :443 \-servername digininja.org.uk成功返回目标站点内容,但SNI字段仍以明文暴露请求域名。 信息已被加密(扩展类型0xFFCE),且可任意设置伪装SNI值(如"8=====D")。 获取Cloudflare的ESNI RR记录:建立加密连接:防御视角启示监控系统不能仅依赖DNS查询和SNI字段进行安全判断,攻击者可完全控制这些表面信息。

    82500编辑于 2025-08-18
  • 来自专栏小徐学爬虫

    如何构建多域名HTTPS代理服务器转发

    本文将介绍如何使用SNI Routing技术来构建多域名HTTPS代理服务器转发,轻松实现多域名的安全访问和数据传输。 图片SNI代表"Server Name Indication",是TLS协议的扩展,用于在HTTPS握手过程中传递目标服务器的域名信息。 第三步:配置SNI Routing打开Nginx的SNI Routing配置文件,创建一个匹配域名和目标服务器的规则:```sudo nano /etc/nginx/snippets/sni-routing.conf Nginx会根据SNI信息将流量转发到相应的目标服务器,实现多域名的HTTPS代理服务器转发。 通过使用SNI Routing技术,我们可以轻松构建多域名的HTTPS代理服务器转发,实现安全可靠的网络访问。

    1.2K20编辑于 2023-08-23
  • 来自专栏魔术师卡颂

    都用HTTPS了,还能被查出浏览记录?

    其中,SNI(Server Name Indication,服务器名称指示)就包含了用户访问的网站域名。 那么,握手过程为什么要包含SNI呢? 企业内部防火墙的访问控制和安全策略,就是通过分析SNI信息完成的。 当用户访问一个启用ECH的服务器时,网管无法通过观察SNI来窥探域名信息。只有目标服务器才能解密ECH中的SNI,从而保护了用户的隐私。 ECH时,访问该网站sni会返回plaintext: 对于chrome,在chrome://flags/#encrypted-client-hello[3]中,配置ECH支持: 再访问上述网站,sni ECH通过对TLS握手过程中的敏感信息(主要是SNI)进行加密,为用户提供了更强的隐私保护。

    1.8K40编辑于 2023-08-30
  • 来自专栏Windows技术交流

    Windows服务器如何支持https多站点

    上述需求的专业术语叫SNI,支持SNI的Windows IIS最低版本是IIS8,2008R2上IIS最高版本是IIS7.5,支持SNI的Windows系统要PC≥Win8、Server≥2012。 Win8/2012之前的低版本Windows系统都不支持SNI。 image.png 具体操作上先选https→再对SNI前面的方框打勾☑️→最后选网站对应证书 image.png

    4.8K50发布于 2019-12-23
  • 来自专栏Windows技术交流

    IIS7不支持sni,图形界面不支持单域名证书的https站点指定hostname

    IIS7到底支持SNI吗? 所谓支持SNI就是一个服务器上部署多个站点、每个站点分别绑定不同的证书、用相同的端口,≤2008R2(II7)的低版本是不支持SNI的,并且图形界面不支持单域名证书的https站点指定hostname。 ,SNI的完全支持最低是Server 2012或Win8系统。 总之,IIS7上的SNI支持是不完整的,不适用多个单独的域名和单独的证书,只适用通配型证书。 ,SNI的支持最低是Server 2012或Win8系统。

    3.2K140编辑于 2022-03-02
领券