You need to enable JavaScript to run this app.
导航
标准 HLS 加密改写
最近更新时间:2025.10.27 10:41:19首次发布时间:2024.09.20 12:14:06
复制全文
我的收藏
有用
有用
无用
无用

本文档介绍了火山引擎内容分发网络(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

未启用该特性时,密钥的获取流程

启用该特性后,密钥的获取流程

  1. 客户端向 CDN 请求该 .m3u8 文件。请求 URL 是 https://www.example.com/index.m3u8
  2. CDN 将该 .m3u8 文件发送给客户端。
  3. 客户端分析该 .m3u8 文件,获取 #EXT-X-KEY 标签中的密钥 URL。
  4. 客户端向该密钥 URL 发送请求。
  5. 密钥服务器将密钥发送给客户端。
  1. 客户端向 CDN 请求该 .m3u8 文件,请求 URL 是 https://www.example.com/index.m3u8?DrmAuthToken=xxx
  2. CDN 修改该 .m3u8 文件中 #EXT-X-KEY 标签的值,将签名参数添加到密钥 URL 的末尾。改写后的密钥 URL 为 https://www.test.com/video.key?DrmAuthToken=xxx
  3. CDN 将该 .m3u8 文件发送给客户端。
  4. 客户端分析该 .m3u8 文件,获取 #EXT-X-KEY 标签中的密钥 URL。
  5. 客户端向该改写后的密钥 URL 发送请求。
  6. 密钥服务器验证该请求 URL 中的签名。
  7. 判断签名是否合法。
    • 如果签名合法, 密钥服务器将密钥发送给客户端。
    • 如果签名不合法,密钥服务器拒绝该请求。

操作步骤

  1. 登录 火山引擎内容分发网络控制台
  2. 在左侧导航栏,点击 域名管理
  3. 域名管理 页面,找到需要配置的域名,点击 管理
  4. 定位 标准 HLS 加密改写 模块。
    • 如果您使用的是旧版域名管理页面,点击 编辑配置,然后在 内容优化 标签页中定位 标准 HLS 加密改写 模块。
    • 如果您使用的是新版域名管理页面,点击 编辑域名。在页面左侧的树状配置项列表中,定位 功能配置 > 内容优化 > 标准 HLS 加密改写
      关于新旧版域名管理页面的区别,参见 新版域名配置
  5. 标准 HLS 加密改写 模块中,设置 状态 为启用。
  6. 指定签名参数的名称,长度不能超过 100 个字符。参数名称区分大小写,可以包含字母、数字、下划线(_)、中划线(-)、逗号(,)、句号(.)、感叹号(!)。默认的参数名称是 DrmAuthToken
  7. 点击 提交编辑

Image