CDN加速逐步进入HTTPS时代

2022-06-02 15:38:12 浏览数 (1)

在之前的域名数字证书安全漫谈系列文章中,讲到了跟数字证书有关的安全问题,如假冒证书、劫持、钓鱼攻击等。今天,来谈谈跟数字证书有关的另外一个话题,那就是HTTPS该如何加速的问题。

众所周知,CDN在内容分发上具有距离用例近、快捷的优势,在改善用户体验上具有非常重要的作用。其基本原理就是先把目标网站上的静态内容在各个CDN节点上缓存一份,收到用户请求后,直接从本地缓存返回给用户。

以前网站还是HTTP时代的时候,问题不大。但现在,大多数重要的网站基本都采取HTTPS了。如果继续使用HTTP CDN加速的话,不仅是存在安全隐患,浏览器也会显示相应的警告信息(“第三方可能修改此网站的外观”等)。

要想使用HTTPS加速,往往还不是那么简单(以前的CDN加速解决方案还普遍是针对HTTP的)。首先,数字证书及私钥文件需要发给CDN服务商,由CDN服务器配置在前置CDN节点上,这就带来了安全问题,私钥都发出去了,安全性上就难以保证(当然为静态内容配置不同的域名是一个缓解方案,这就需要至少两张数字证书)。其次,上述配置往往是增值收费服务,配合CDN服务商的人工操作,在效率上也没有优势。

另外一种权宜之计则是,针对一些公共的静态资源(如Bootstrap、Angular JS、jQuery等)使用开源项目CDN服务,而自己的代码不使用CDN服务:

<link href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"> <script src="//cdn.bootcss.com/jquery/2.1.4/jquery.min.js"></script> <script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <script src="//cdn.bootcss.com/angular.js/1.4.5/angular.min.js"></script>

其中域名前面的//表示自适应HTTP或HTTPS。

通过这种方式,起到保障安全和部分加速的效果。

如何才能兼顾安全,又能够对全站进行加速呢?


要保障安全性,必然不能提供私钥文件给CDN服务商。为了解决这个问题,部分领先的CDN厂商开始与数字证书厂商合作,推出了一种新的方式来解决这个问题。

当用户访问业务网站的时候,可以正常显示绿色小锁标志。

查看证书信息,可以在“使用者”一栏看到,CN (Common Name)与访问的域名并不一致,

原来在“使用者可选名称” (Subject Alternative Name)包含了用户所访问的域名,也就是别名。

原来,是CDN服务商为一批客户申请使用了同一张数字证书,这张数字证书包含了用户网站域名的别名(Subject Alternative Name)。

仔细阅读该CDN服务商的说明,它一共提供了三种HTTPS加速模式:

第一种:灵活的SSL加速。这种方式对用户来说带有部分欺骗性,即用户看到的是绿色小锁标志,但只有用户浏览器到CDN是HTTPS,CDN到真实服务器是明文传输的,不推荐重要业务采用(个人网站可以玩玩)。

第二种:即上述提到的全程分段两张证书的SSL模式。将全程分为两段,用户浏览器到CDN使用的是CDN提供的数字证书,CDN到真实服务器使用的是真实的数字证书。

第三种:即需要提供私钥文件的全程分段1张证书的SSL模式。用户浏览器到CDN,CDN到真实服务器使用的都是真实的数字证书。但这种方式CDN服务商会持有真实数字证书的私钥文件。

前面所举的例子,就是第二种加速模式(全程分段 两张证书 的SSL模式)。

目前,国内已开始有CDN厂家推出类似的服务,如果您的业务有HTTPS 加速需要,本文可供参考(出于安全考虑,建议为需要加速的静态内容使用不同的二级域名或者子域名)。如果您就在CDN相关的公司并且在这方面还没有动作的话,那么提供多样化的HTTPS CDN服务就要纳入日程了。

0 人点赞