本文档介绍了火山引擎内容分发网络(CDN)提供的 "标准 HLS 加密改写" 特性。
说明
- 要使用此特性,请 提交工单。
- 如果您的加速域名也启用了 "智能压缩" 特性,"智能压缩" 不会对
特性介绍
客户端在播放使用 HLS 协议传输的 .ts 加密视频流时,客户端需要事先获取用于解密视频流的密钥。密钥存放在密钥服务器上,客户端通过访问密钥 URL 来获取密钥。密钥 URL 包含在 .m3u8 播放列表文件中的 #EXT-X-KEY 标签内。为了更好保护密钥的安全,您可以使密钥 URL 包含客户端的签名,并在密钥服务器上实现签名校验机制来验证客户端的签名。
在启用 "标准 HLS 加密改写" 特性后,CDN 将 .m3u8 请求中包含的签名参数添加到密钥 URL。
说明
如果客户端在请求 .m3u8 文件时没有在请求 URL 中包含签名参数,CDN 不会改写密钥 URL。
密钥获取流程
下表分别展示了在启用该特性的场景和未启用该特性的场景中,客户端获取密钥的流程。粗体文字表示在启用该特性后,流程中的增加的步骤和信息。
在该场景中:
- .m3u8 文件的 URL 是
https://www.example.com/index.m3u8。 - 签名参数是
DrmAuthToken,签名值是 xxx。 - 密钥 URL 是
https://www.test.com/video.key。
未启用该特性时,密钥的获取流程 | 启用该特性后,密钥的获取流程 |
|---|
- 客户端向 CDN 请求该 .m3u8 文件。请求 URL 是
https://www.example.com/index.m3u8。 - CDN 将该 .m3u8 文件发送给客户端。
- 客户端分析该 .m3u8 文件,获取
#EXT-X-KEY 标签中的密钥 URL。 - 客户端向该密钥 URL 发送请求。
- 密钥服务器将密钥发送给客户端。
| - 客户端向 CDN 请求该 .m3u8 文件,请求 URL 是
https://www.example.com/index.m3u8?DrmAuthToken=xxx。 - CDN 修改该 .m3u8 文件中
#EXT-X-KEY 标签的值,将签名参数添加到密钥 URL 的末尾。改写后的密钥 URL 为 https://www.test.com/video.key?DrmAuthToken=xxx - CDN 将该 .m3u8 文件发送给客户端。
- 客户端分析该 .m3u8 文件,获取
#EXT-X-KEY 标签中的密钥 URL。 - 客户端向该改写后的密钥 URL 发送请求。
- 密钥服务器验证该请求 URL 中的签名。
- 判断签名是否合法。
- 如果签名合法, 密钥服务器将密钥发送给客户端。
- 如果签名不合法,密钥服务器拒绝该请求。
|
操作步骤
- 登录 火山引擎内容分发网络控制台。
- 在左侧导航栏,点击 域名管理。
- 在 域名管理 页面,找到需要配置的域名,点击 管理。
- 定位 标准 HLS 加密改写 模块。
- 如果您使用的是旧版域名管理页面,点击 编辑配置,然后在 内容优化 标签页中定位 标准 HLS 加密改写 模块。
- 如果您使用的是新版域名管理页面,点击 编辑域名。在页面左侧的树状配置项列表中,定位 功能配置 > 内容优化 > 标准 HLS 加密改写。
关于新旧版域名管理页面的区别,参见 新版域名配置。
- 在 标准 HLS 加密改写 模块中,设置 状态 为启用。
- 指定签名参数的名称,长度不能超过 100 个字符。参数名称区分大小写,可以包含字母、数字、下划线(_)、中划线(-)、逗号(,)、句号(.)、感叹号(!)。默认的参数名称是
DrmAuthToken。 - 点击 提交编辑。
