秒懂边缘云 | CDN基础入门:HTTPS配置

共 4320字,需浏览 9分钟

 ·

2022-06-25 20:05

前言


在使用HTTP协议进行内容传输时,内容都会以明文发送,不会提供任何方式的数据加密。


如果您希望业务的敏感数据在网络上传输时能够以密文传输,则需要使用HTTPS协议。HTTPS作为HTTP的安全版,将HTTP用SSL/TLS协议进行封装,其安全基础正是SSL/TLS协议。HTTPS提供了加密通讯方法,现在被广泛用于万维网上安全敏感的通讯,例如交易支付。


上个章节中,我们已经学习了如何添加CNAME解析来接入CDN加速。如果业务需要HTTPS访问,我们还需要在解析前后配置HTTPS功能,如果域名有业务正在服务,推荐解析添加前进行配置,完成灰度测试后再调整解析。


本章节我们共同学习「HTTPS相关功能及配置」,如果您的业务有相关访问诉求,欢迎关注下文的实践指导内容。


准备工作


1.已创建完成的CDN域名。


2.登录您已购买SSL域名证书的厂商控制台,如未购买,推荐通过 阿里云控制台 - SSL证(应用安全)申请购买。



配置接入


根据您的情况,我们将操作流程分为三个部分介绍,您可以参考流程图根据自身情况选择配置:


步骤一:暂无证书时购买流程(可选)

步骤二:外部证书导入流程(可选)

步骤三:开启HTTPS安全加速


提示:在开启HTTPS安全加速后,如果您还需要对其他HTTPS相关配置项进行了解和配置,可以继续参考下文中HTTPS功能介绍的内容。


整体操作流程如下图所示:



步骤一:暂无证书时购买流程


域名开启HTTPS功能前,需要您准备可用于绑定该域名的证书文件,如果您尚未申请证书,推荐您通过阿里云的证书管理服务购买SSL证书(即 SSL证书控制台)。您可以根据自身需求在以下两种服务中进行选择:


a. 选择证书管理 - 购买证书,针对您的业务域名申请付费证书,适用于企业级、对安全等级要求较高的用户。



b. 选择 免费证书 - 创建证书 - 证书申请,适用于安全等级要求一般的用户。



证书申请过程中,为了验证域名所有权,您需要填写申请表单内的相关信息,并且完成DNS验证或文件验证用于确认域名所有权。


详细操作步骤您可以参考数字证书管理服务的产品文档引导:

https://help.aliyun.com/document_detail/188316.htm


步骤二:外部证书导入流程


如果您已经在其他平台购买了证书,可以在 阿里云控制台 - 数字证书管理服务 上传外部证书。


您需要登录外部证书后台,针对需要导出的域名进行证书下载,从第三方平台导出证书到本地时,可以指定服务器类型,推荐您选择 Nginx 类型 的证书文件下载以便于您后续上传证书。



证书下载到本地后,压缩包内至少会有2个文件,一个.key后缀文件(私钥)和 一个.pem 或 .crt后缀文件(公钥),不同厂商导出文件时,可能会有细微区别,以实际导出情况为主。



常规情况下,您购买的证书为国际标准证书,上传时选择国际标准即可,证书名称自定义填写,仅用于在平台上管理区分。我们需要将刚刚导出的公私钥文件上传到阿里云平台,例如:



· 证书文件:又称为证书公钥,填写证书文件内容的PEM编码,公钥文件的后缀为一般.pem或.crt,使用文本编辑器打开复制并粘贴,或直接点击上传按钮选择本地文件。


· 证书私钥:填写证书私钥内容的PEM编码。私钥证书的后缀为.key,使用文本编辑器打开复制并粘贴,或直接点击上传按钮选择本地文件。


步骤三:开启HTTPS安全加速


证书上传完成/购买完成后,我们打开CDN控制台的HTTPS配置页面,开启HTTPS安全加速功能后,证书来源选择云盾(SSL)证书中心,点击确定后即可开启,操作示意图如下:



证书名称参考云盾控制台对应证书显示的即可,证书名称查看方式:




常见问题:


如果您确认证书已经签发上传完成,但域名开启HTTPS时无可选证书,常见原因如下:


如果域名申请时,选择的是单域名证书

    • 证书绑定域名需要和您的CDN加速域名完全匹配才能进行绑定。例如 www.aliyun.com 的证书,无法用于绑定 cdn.aliyun.com。您需要为 cdn.aliyun.com 单独申请一张证书。

如果域名申请时,选择的是泛域名证书

    • 证书绑定的泛域名需要是您的CDN加速域名同级才能进行绑定,例如 *.aliyun.com 的证书,只能用于绑定对应子域名,例如二级域名 cdn.aliyun.com,无法绑定三级域名 video.cdn.aliyun.com。如需绑定多级子域名,您可以申请 泛域名证书 *.cdn.aliyun.com 或 申请特定域名的单域名证书。


HTTPS相关功能介绍


HTTPS相关功能配置项为非必要的优化功能,主要用于优化传输效率或调整安全限制策略,您可以根据业务诉求判断是否开启。


配置HTTP/2(常用)


HTTP/2也被称为HTTP 2.0,相对于HTTP 1.1新增了多路复用、压缩HTTP头、划分请求优先级和服务端推送等特性,解决了在HTTP 1.1中一直存在的问题,优化了请求性能,同时兼容了HTTP 1.1的语义。目前,Chrome、Edge、Safari和Firefox等浏览器已经支持HTTP/2协议。


HTTP/2在业务中最大优势体现为提升了TCP多路复用效率,压缩header提升传输效率和速度。劣势体现为HTTP2在多路复用时,可能会由于底层窗口队头阻塞而导致更多上层HTTP请求受影响。



配置项总结:


1. HTTP/2可以提升终端和节点间的效率,但在终端网络环境不佳的情况下,终端耗时表现可能会劣化。


2. 如期望提升HTTP内容的传输效率,建议开启HTTP/2;如您业务中存在较多弱网用户,建议关闭HTTP/2。


配置强制跳转(常用)


阿里云CDN支持配置HTTP和HTTPS强制跳转


场景一:HTTP协议(不安全)请求重定向为HTTS协议(安全)


针对已经配置了HTTPS证书的加速域名,可配置强制跳转后,默认通过301重定向方式,将客户端到CDN节点的HTTP请求强制跳转为HTTPS请求,HTTPS请求更安全。


场景二:HTTPS协议(安全)请求重定向为HTTP协议(不安全)


通过301重定向方式,将客户端到CDN节点的HTTPS请求强制跳转为HTTP请求,无需安全传输。



配置项总结:


主要适用于业务中可能会触发HTTP请求,但期望客户端在请求中通过HTTPS协议传输数据的场景。



配置OCSP Stapling


OCSP Stapling功能,可实现由CDN预先缓存在线证书验证结果并下发给客户端,无需浏览器直接向CA站点查询证书状态,从而减少用户验证时间。


启用OCSP Stapling功能后,OCSP信息查询的工作将由CDN服务器完成。CDN通过低频次查询,将查询结果缓存到服务器中(默认缓存时间60分钟)。当客户端向服务器发起TLS握手请求时,CDN服务器将证书的OCSP信息和证书一起发送到客户端,供用户验证,无需用户再向数字证书认证机构(CA)发送查询请求。极大地提高了TLS握手效率,节省了用户验证时间。



配置项总结:


对TLS握手效率有优化需求时,可以开启该配置。


配置HSTS


通过强制HTTPS跳转时,仍存在一次HTTP请求的传输过程,如果您希望完全不使用HTTP协议进行连接,并不允许客户接受不安全的证书,您可以开启HSTS功能,强制客户端(例如:浏览器)使用HTTPS与CDN节点创建连接,拒绝所有的HTTP连接并阻止用户接受不安全的SSL证书,降低用户的第一次时访问请求被恶意拦截的风险。



配置项总结:


适用于对安全有强需求,需要阻止客户端发起HTTP连接,并要求客户端校验证书安全性的场景,可以开启该配置。


配置TLS版本控制


阿里云CDN提供TLS版本控制功能,您可以根据不同域名的需求,灵活地配置TLS协议版本,低版本的TLS协议将提供对老版本浏览器的支持,但是协议的安全性相对更差一些,高版本的TLS协议将提供更高的安全性,但是对老版本浏览器的兼容性相对差一些。



配置项总结:

通常无需修改,如果您需要适配某些浏览器,或者增强TLS限制时,可以根据版本需要进行调整。


常见问题


1. 确认证书已经签发或上传完成,但域名开启HTTPS时无可选证书是什么原因?

上传/购买的证书无法用于该加速域名的绑定,普遍为加速域名和证书绑定域名不匹配导致,详情可参考本文 配置接入 开启HTTPS安全加速 相关解释。


2. 已经配置了HTTPS,为什么客户端还是HTTP访问?

客户端是以HTTP访问还是HTTPS访问完全是客户端的行为,如果您希望客户端强制使用HTTPS访问,可以在CDN上开启强制HTTPS跳转,或业务代码中引用链接时使用HTTPS协议。


3. 部分浏览器访问HTTPS异常,但访问HTTP正常可能是什么原因?

证书链是由根证书、中间证书、用户证书组成。如果您上传的公钥文件中只有用户证书,部分浏览器无法校验证书合法性导致报错或加载异常(例如提示证书链不完整/无法获取中间证书/无法校验根证书等)。您可以通过证书链补全工具,对公钥的证书链进行补全后,重新上传并更新域名的证书信息即可。


4. 源站已经配置了HTTPS,CDN上还需要配置HTTPS吗?

HTTPS是客户端和服务端的交互,未使用CDN之前,是客户端直接和源站交互,因此源站需要配置HTTPS。使用CDN之后,是客户端和CDN交互,如果您需要以HTTPS的形式访问CDN,则必须在CDN上配置HTTPS证书。


5. 源站的HTTPS证书更新了,CDN上需要同步更新吗?

不需要。源站的HTTPS证书更新后不会影响CDN上的HTTPS证书,当您在CDN上配置的HTTPS证书将要到期或者已经到期时,您才需要在CDN上更新HTTPS证书。


6.开启CDN的HTTPS加速后会额外收费吗?

会额外收费。开启CDN的HTTPS加速,实际开启的是客户端到CDN边缘节点这段链路的HTTPS。因为SSL协议的握手和内容解密都需要计算,所以会增加CDN服务器的CPU资源损耗,但不会增加您源站服务器的资源损耗,因为CDN边缘节点到您源站这段链路使用的仍然是HTTP协议,不会额外增加您源站的损耗。


结束


至此,「HTTPS的配置及相关功能」介绍内容已经结束。如果您在步骤一的灰度验证中访问时因HTTPS问题未达到预期,可在配置调整达到预期后再进行验证。


在下个章节中。我们将共同学习「CDN缓存的相关功能及配置」,合理地配置缓存能够提高您业务中CDN的访问效率,欢迎您继续关注本系列的实践指导。


往期内容推荐


点击“阅读全文”,了解更多阿里云CDN产品信息

浏览 99
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报