技术博客 > 正文

CDN如何实现HTTPS双向认证

2022-03-02

https双向认证,又称为SSL双向认证,不仅客户端能验证服务器的身份,而且服务器也能验证客户端的身份。

◆功能背景

1.“浏览器 – CDN节点双向认证”:当前绝大多数https为单向认证,即浏览器可以验证服务器的身份,服务器无法验证浏览器的身份。然而,在某些特定的场景,服务器需要验证用户的身份,以确定该用户是否为服务器所要服务的目标对象。如:某公司提供给合作商使用的系统网站,如果不是目标用户则无法访问该网站,确保网站的业务安全性;
2.“CDN节点 – 源站双向认证”:已经有CDN加速的客户网站,源站需要验证CDN节点的身份,当前验证CDN节点身份的方式主要有两种:

IP白名单机制:CDN提供给源站所有可访问源站的节点IP,若访问IP不在白名单内则源站拒绝访问。
×弊端:节点IP经常变更,源站同步更新不易;节点IP数量庞大,源站防火墙所能添加的白名单数量有限。

带特殊请求头访问:CDN节点回源时,请求携带事先和源站协商好的特殊头部,由源站校验,校验通过则接受访问。
×弊端:特殊头部存在被伪造的风险。

使用“CDN节点-源站”的https双向认证解决方案,有效解决IP白名单和带特殊头部鉴权的弊端。

针对上述两种情况,网宿提供“用户-CDN节点”和“CDN节点-源站”两端双向认证功能,全方位保障业务和源站安全。

远程办公吐槽上热搜 卡顿掉线谁来救急?

◆功能原理

①用户和CDN节点间的双向认证:

浏览器验证CDN节点身份:CDN节点提供给浏览器所访问网站的证书,浏览器验证证书。
CDN节点验证浏览器身份:浏览器安装网站证书,握手时浏览器将下载好的证书发给CDN节点,由CDN校验源站的用户的证书(客户提供自签ca给CDN,该ca签发了浏览器所安装的证书)。

②CDN节点和源站间的双向认证:

CDN节验证源站身份:握手时源站提供证书,由CDN节点的ca验证源站的身份(ca由客户自签或者网宿代理自签)。
源站校验CDN节点的身份: 握手时,CDN节点向源站发送证书,由源站校验证书。