Cloudflare友情提醒:使用SNI的必要性

本文探讨了HTTPS协议如何保护用户的在线隐私。虽然HTTPS可以保护数据内容,但网站身份仍可能通过DNS查询和SNI扩展泄露。文章还介绍了SNI的作用及其实现原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

你的浏览历史有多 私密?

当您通过HTTPS访问一个站点时,您希望没有人监听您和您的连接终止的位置之间的操作的。某种程度上来说,这是HTTPS能做到的。如果您访问您的银行网站,HTTPS可以有效地防止发送到或从该网站发送的内容(例如,您的用户名和密码或您的银行帐户余额)泄露给ISP或监视您网络连接的任何人。

尽管发送到HTTPS站点或从HTTPS站点接收的内容是受到保护的,但是还有两种方式可以很容易地观察到您访问过该站点。传统上,其中一种是通过DNS。默认情况下,DNS查询是不加密的,因此您的ISP或任何其他人都可以看到您要到达网络上的哪个地方。Cloudflare 1.1.1.1——一个免费的(而且速度很快的)公共DNS解析器,支持DNS over TLS和DNS over HTTPS。

在这里插入图片描述

1.1.1.1已经取得了巨大的成功,我们显著提高了通过加密连接发送DNS查询的百分比。然而,批评人士正确地指出,你访问的网站的身份仍可能以其他方式泄露。最有问题的是所谓的服务器名称指示(SNI)扩展。

为什么使用SNI

从根本上说,SNI的存在是为了允许您在一个IP地址上托管多个加密的网站。早期的浏览器没有包含SNI扩展。因此,当发出建立HTTPS连接的请求时,web服务器没有太多信息来继续进行,并且只能回收web服务器正在监听的每个IP地址的单个SSL证书。

这个问题的一个解决方案是,创建具有多个主题备用名称(SANs)的证书。这些证书将加密多个域的流量,这些域都可以托管在同一个IP上。Cloudflare就是这样处理来自不支持SNI的旧浏览器的HTTPS流量的。然而,我们限制这一功能仅供我们的付费客户使用,这和SANs不是一个很好的解决方案的原因一样:它们是一种黑客攻击,管理起来很麻烦,如果包含了太多域,可能会降低性能。

最具弹性的解决方案是SNI。Cloudflare认为的一个合理的类比是,把它想象成一个邮政信封。信封里的东西是受保护的,邮差是看不到的。而信封外面是街道地址,邮差根据它来将信封送到正确的建筑位置。在互联网上,web服务器的IP地址就相当于街道地址。

然而,如果你住在一个多单元的大楼里,仅仅通过一个街道地址是不足以把信封送到正确的收件人手中的。为了补充街道地址,你要写上一个公寓号码或收件人的名字。这相当于SNI。如果web服务器承载多个域,SNI可以确保将请求路由到正确的站点,以便返回正确的SSL证书,从而能够加密和解密任何内容。

### 使用 Cloudflare 服务配置和管理网站流量 #### 配置域名至 Cloudflare 为了使网站能够利用 Cloudflare 的功能,需先将域名托管到 Cloudflare 上。登录账户后,在仪表板内添加所需保护的新站点并按照指示操作完成DNS信息迁移[^1]。 #### 设置 DNS 记录 进入Cloudflare控制面板中的DNS设置页面来创建必要的A记录或其他类型的DNS条目指向主机服务器IP地址;确保所有必需的服务(例如邮件)都能正常工作。对于希望启用CDN加速的内容可以开启橙云模式(orange cloud icon),这会使得请求通过Cloudflare网络传输而不是直接访问源站[^2]。 #### 启用安全级别与防火墙规则 在速度选项卡下调整性能优化参数如自动最小化HTML/CSS/JavaScript文件大小等以提高加载效率。而在安全性部分,则可根据实际需求设定不同等级的安全防护措施以及自定义WAF(Web Application Firewall)规则过滤恶意流量,减少DDoS攻击风险的同时不影响合法用户的浏览体验[^3]。 #### 利用 Workers 实现边缘计算 如果开发者想要进一步增强应用的功能性和响应时间,还可以探索Cloudflare提供的Workers平台——允许编写运行在网络边缘位置的小型JavaScript程序处理HTTP请求前后的逻辑运算或数据转换任务,从而实现更灵活高效的业务流程定制化解决方案[^4]。 ```javascript addEventListener('fetch', event => { let url = new URL(event.request.url); // 修改URL路径为例示 url.pathname = '/new-path'; let request = new Request(url, event.request); event.respondWith(fetch(request)); }) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值