HTTPS是在HTTP传输的基础上通过TLS/SSL协议对传输中的数据进行加密,可有效防止数据被第三方监听、截取和篡改。您可以在CDN上配置HTTPS证书,对客户端和CDN之间的请求进行HTTPS加密,保障数据传输的安全性。
使用HTTPS加密的必要性
HTTPS安全传输,有效防止HTTP明文传输中的窃听、篡改、冒充和劫持风险。数据传输过程中对您的关键信息进行加密,防止类似Session ID或者Cookie内容被攻击者捕获造成的敏感信息泄露等安全隐患。
HTTPS是主流趋势,若坚持使用HTTP协议,除了安全会埋下隐患外,终端用户在访问网站时出现的不安全标识,也将影响用户体验。
主流搜索引擎都已经对HTTPS网站进行搜索加权,使用HTTPS协议访问的网站将会得到更高的搜索排名。
SSL/TLS证书
SSL(Secure Sockets Layer)即安全套接层协议,SSL协议位于TCP/IP协议与各种应用层协议之间,客户端(例如浏览器)可以验证与其连接的服务器的真实性和完整性,并使用加密来交换信息。
IETF将SSL标准化后名称被改为TLS(Transport Layer Security),即传输层安全协议,因此通常将两者并称为SSL/TLS。
SSL证书采用SSL协议进行通信,是由权威机构颁发给网站的可信凭证,具有网站身份验证和加密传输的双重功能。
全链路HTTPS加密
当客户端向服务器发起请求时,HTTPS加密流程如下图所示:
在CDN上配置HTTPS证书,即可实现客户端和CDN节点之间请求的HTTPS加密。
说明HTTPS安全加速属于增值服务,会在基础服务计费的基础上根据HTTPS请求数额外计费,详细计费标准,请参见静态HTTPS请求数。
在源站上配置HTTPS证书,并配置CDN节点通过HTTPS协议回源到源站服务器以实现HTTPS加密。
说明如果需要实现全链路HTTPS加密,请确保源站支持HTTPS服务,并设置HTTPS协议回源。
SNI(Server Name Indication)
随着IPv4地址的短缺,为了让多个域名复用一个IP地址,在HTTP服务器上引入了虚拟主机的概念。服务器可以根据客户端请求中不同的主机名,将请求分发给不同的虚拟主机来处理。但是,对于含有多个虚拟主机的HTTPS服务器而言,在SSL握手建立之前,由于服务器无法知道客户端请求的是哪个主机,也就无法将请求交给对应的虚拟主机。然而,要完成SSL握手,又必须读取虚拟主机中配置的证书信息。
SNI(Server Name Indication)就是用来解决这个矛盾问题的。SNI要求客户端在与服务器握手时就携带访问域名的主机名信息。这样,服务器就知道需要用哪个虚拟主机的证书与客户端握手并建立TLS连接。SNI最早在2004年被提出,目前主流的浏览器、服务器和测试工具都已支持SNI。
在TLSv1.2中,SNI开始被支持。具体而言,SNI就是在SSL握手信息中增加了访问目标的主机名信息。比如访问 www.example.com 域名的握手信息中就存在 www.example.com 的主机名信息。
某些较旧或特定配置的客户端(如老旧版本的Android或iOS、Java 6及以下、部分IoT设备)可能不支持SNI,导致无法正常访问HTTPS加速域名。排查方法请参见HTTPS排障指南。
配置客户端与CDN节点间的HTTPS安全加速
步骤一:准备与加速域名匹配的证书
仅支持PEM格式的证书,其他格式的证书请参照证书格式转换方式进行格式转换。
如果需要申请证书,您可以在SSL证书控制台申请个人测试证书(免费版)或购买正式证书。
您也可以在第三方服务商申请证书,签发的证书需满足证书格式要求。详细信息,请参见证书格式说明。
步骤二:开启HTTPS安全加速
必需:准备证书后,需在加速域名上配置HTTPS证书,才能开启HTTPS安全加速。
可选:您可根据实际需求,配置更多功能。
分类
功能
说明
配置客户端访问协议
通过配置协议重定向,可根据需要将客户端到CDN节点的HTTP请求重定向为HTTPS请求,或将HTTPS请求重定向为HTTP请求。
强制客户端使用HTTPS与CDN节点创建连接,降低第一次访问被劫持的风险。
配置协议版本
HTTP/2(HTTP2.0)是继HTTP1.1版本之后的新版HTTP协议,支持二进制分帧、多路复用、首部压缩等最新的特性,能够大幅度提高Web性能,降低数据交互延迟。
设置TLS版本后,仅支持客户端使用对应版本TLS与CDN节点之间发送和接收请求,以满足通信链路的安全性要求。
加速SSL证书校验
CDN节点预先缓存在线证书验证结果并下发给客户端,无需浏览器直接向CA站点查询证书状态,减少用户验证时间。