URL鉴权是指用户按照指定的签名方式对于特定的URL增加鉴权认证,您可以通过自行配置校验鉴权URL中的加密串和时间戳,保护用户站点的资源不被非法站点下载盗用。URL鉴权比Referer防盗链安全性更高,适合于安全密级较高的文件。
创建对应的行为
选择源站,输入路径,其中路径可以是源站具体到文件,也可以指定源站某个文件夹,譬如指定具体文件:/images/head.jpg,文件夹则是:/images/*,提交修改,等待CDN部署完成
点击编辑鉴权URL行为
点击编辑,弹出框包含公钥ID以及私钥文件,其中公钥ID以及私钥文件是生成鉴权URL关键
测试生成鉴权URL
–点击鉴权计算器,输入具体文件路径(/images/head.jpg),过期日期(yyyy)
生成鉴权URL逻辑
签名 URL 示例:http://d111111abcdef8.agilewing.net/image.jpg?color=red&size=medium&
Expires=1357034400&Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~-ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmatEXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6&Key-Pair-Id=K2JCJMDEHXQW5F
必须参数:
Expires:过期时间,时间戳形式(10位)
Key-Pair-Id:公钥ID,agilewing CDN平台获取到的
Signature:URL加签后的字符串
其中color以及size等参数是URL路径自定义参数
签名 URL 的示例策略声明:
在使用标准策略的签名 URL 的策略声明中指定的值
Resource:
包含查询字符串(如果有)的基本 URL,但不能包括 Expires、Signature 和 Key-Pair-Id 参数,例如:
http://d111111abcdef8.agilewing.net/images/horizon.jpg?size=large&license=yes
DateLessThan
Unix 时间格式(以秒为单位)和协调通用时间 (UTC) 格式的 URL 过期日期和时间。例如,2013 年 1 月 1 日上午 10 点 UTC 转换为 Unix 时间格式就是 1357034400。
该值必须与签名 URL 中的Expires查询字符串参数相匹配
要为签名 URL 中的 Signature 参数创建值,请对在为使用标准策略的签名 URL 创建策略声明中创建的策略声明进行哈希处理并签署。
(1)使用 SHA-1 哈希函数和 RSA 对在为使用固定政策的签名 URL 创建政策声明过程中 创建的策略声明进行哈希处理并签署。请使用不再包含空格的策略声明版本。
对于哈希函数所需的私有密钥即是第3步中privateKey.pem文件
注意:
您用于哈希及签署策略声明的方法取决于您的编程语言和平台
(2)删除经过哈希处理并签署的字符串中的空格(包括制表符和换行符)。
(3)使用 MIME Base64 编码对字符串进行 Base64 编码。
(4)用有效的字符替换 URL 查询字符串中的无效字符。下表列出了无效和有效字符。
替换这些无效字符
使用这些有效字符
+
-(连字符)
=
_ (下划线)
/
~ (波浪字符)
(5)将结果值附在签名 URL 的 &Signature= 之后,然后返回 要使用固定政策创建签名 URL,以完成签名 URL 的各部分的串连