CDN鉴权异常导致访问CDN加速资源返回403错误

更新时间:

问题描述

为了保护站点的资源不被非法站点下载盗用,采用URL鉴权方式保护源站资源,在开启阿里云CDN的URL鉴权功能后,访问CDN加速资源返回403错误,通过浏览器的开发者工具,Response Header中查看详细错误信息如下:

  • 没有携带鉴权参数:X-Tengine-Error:denied by req auth: no url arg auth_key
  • 鉴权过期:X-Tengine-Error: denied by req auth: expired timestamp
  • 鉴权计算错误:X-Tengine-Error: denied by req auth: invalid md5hash

问题原因

阿里云CDN开启URL鉴权功能后,发生报错的原因如下:

  • 没有携带鉴权参数:CDN开启了鉴权,但是实际访问URL中没有携带鉴权参数。
  • 鉴权过期:CDN开启了鉴权,并且URL携带了鉴权参数,但是鉴权参数过期。
  • 鉴权计算错误:鉴权参数的MD5值计算不正确。

解决方案

CDN的URL鉴权错误的解决方法如下:

  1. 打开Chrome浏览器,按F12键打开浏览器的开发者工具
  2. 切换到Network标签,在Network标签下的Response Header,查看是哪一类的错误信息,根据错误信息执行以下操作:
    • 没有携带鉴权参数:
      • 如果您不需要CDN的鉴权功能,登录CDN控制台,关闭鉴权即可。
      • 如果您需要使用CDN的鉴权功能,请参见URL鉴权,配置URL鉴权。
    • 鉴权过期
      如果鉴权过期,请重新生成鉴权URL。
    • 鉴权计算错误
      如果鉴权的MD5计算不正确,建议先使用CDN控制台的地址生成器生成URL来对比自己的鉴权代码,或者参见鉴权示例代码

相关文档

适用于

  • CDN