原理说明

用户访问加密 URL 格式

用户访问的 URL 如下:
http://DomainName/timestamp/md5hash/FileName

加密URL的构造:域名后跟生成URL的时间(精确到分钟)(timestamp)再跟md5值(md5hash),最后拼接回源服务器的真实路径(FileName),URL有效时间为1800s。

当鉴权通过时,实际回源的URL是:
http://DomainName/FileName
鉴权字段描述
  • 注意:PrivateKey 由CDN客户自行设置
  • 有效时间1800s是指,用户访问客户源服务器时间超过自定义失效时间(timestamp字段指定)的1800s后,该鉴权失效;例如用户设置访问时间2020-08-15 15:00:00,链接真正失效时间是2020-08-15 15:30:00
字段 描述
DomainName CDN客户站点的域名
timestamp 资源失效时间,作为URL的一部分,同时作为计算 md5hash 的一个因子,格式为: YYYYMMDDHHMM ,有效时间1800s
md5hash 以timestamp、FileName和预先设定好的 PrivateKey 共同做MD5获得的字符串,即 md5(PrivateKey + timestamp + FileName)
FileName 实际回源访问的URL (注意,鉴权时候FileName要以/开头)
示例说明
  1. 回源请求对象:
    http://cdn.example.com/4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3
  2. 密钥设为:aliyuncdnexp1234 (用户自行设置)。
  3. 用户访问客户源服务器时间为 201508150800(格式为: YYYYMMDDHHMM)。
  4. 则CDN服务器会构造一个用于计算 md5hash 的签名字符串:
    aliyuncdnexp1234201508150800/4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3
  5. 服务器会根据该签名字符串计算 md5hash:
    md5hash = md5sum("aliyuncdnexp1234201508150800/4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3") = 9044548ef1527deadafa49a890a377f0
  6. 请求CDN时url:
    http://cdn.example.com/201508150800/9044548ef1527deadafa49a890a377f0/4/44/44c0909bcfc20a01afaf256ca99a8b8b.mp3

    计算出来的 md5hash 与用户请求中带的 md5hash = 9044548ef1527deadafa49a890a377f0 值一致,于是鉴权通过。