网站使用腾讯云CDN后显示403错误的解决办法

不少小伙伴开始使用腾讯云CDN加速WordPress站点访问后出现403错误,不知道到底哪里出了问题。通常情况下可能是由域名配置、CDN 安全策略以及源站响应 403 导致。本文搬主题就详细介绍一下CDN 常见的引发403错误的问题场景。

还没有腾讯云服务器,目前只要50元一年,活动地址:https://curl.qcloud.com/TIUOO1pc

一、CDN鉴权问题

CDN鉴权问题通常表现在没有带鉴权参数、鉴权过期、鉴权计算错误,需要根据URL的鉴权文档了解鉴权的原理,然后去进一步排查和解决。目前腾讯云控制台提供4种鉴权方式可供选择,具体可以参考文档:https://cloud.tencent.com/document/product/228/41622

1.1.1 CDN开启了鉴权,但是实际访问的url里面没有带鉴权参数,访问会报错403

例如:

网站使用腾讯云CDN后显示403错误的解决办法插图

这里以typeD鉴权为例进行演示

可以看出不带鉴权参数访问会直接返回403

网站使用腾讯云CDN后显示403错误的解决办法插图1

1.1.2 鉴权参数过期

CDN开了鉴权,并且url带了鉴权参数,但是鉴权参数过期,那么会返回一个error为1的错误码

例如:

网站使用腾讯云CDN后显示403错误的解决办法插图2

这就表示鉴权参数过期了,需要重新计算时间戳啦。

1.1.3鉴权参数的MD5计算不正确

若带了参数的url,但是MD5校验不正确,也是会返回403的,同时会有一个error为-5的错误码

例如:

网站使用腾讯云CDN后显示403错误的解决办法插图3

通过返回的错误码即可快速判断403问题所在啦

注意:设置鉴权的有效时间说明

网站使用腾讯云CDN后显示403错误的解决办法插图4

当设置为0时,表示当前时间过期

例如,鉴权参数带的时间戳为1605247592表示2020/11/13 14:06:32 ,当本地时间到达这个时间时,那边该参数即过期

反之,若设置为2200,则表示1605247592该时间往后的2200秒内鉴权有效,超过了2200秒即过期。

CDN控制台提供了鉴权计算器功能,方便我们计算和校验鉴权是否计算有误,还是挺不错的功能的。

网站使用腾讯云CDN后显示403错误的解决办法插图5
网站使用腾讯云CDN后显示403错误的解决办法插图6

鉴权导致的403解决方案

1、如果不需要CDN的鉴权功能,可以在CDN控制台关闭鉴权

2、如果鉴权过期,请重新生成鉴权url

3、如果鉴权MD5计算不正确,可以通过鉴权计算器生成的url对比自己的鉴权代码来排查计算出错的问题

二、CDN防盗链问题

开启了防盗链功能,但是实际的请求头里面的referer头不符合防盗链规则导致失败,因防盗链问题导致的403.

Referer防盗链的类型如下:

网站使用腾讯云CDN后显示403错误的解决办法插图7

黑名单:黑名单内的域名均无法访问当前的资源

白名单:只有白名单的域名才可以访问当前资源

黑名单和白名单互斥,同一时间只支持其中一种方式生效。

例如:设置白名单加不勾选空referer

网站使用腾讯云CDN后显示403错误的解决办法插图8

空refer会返回403

网站使用腾讯云CDN后显示403错误的解决办法插图9

不在白名单的refer也会403

网站使用腾讯云CDN后显示403错误的解决办法插图10

只有在白名单的refer才可以正常访问

网站使用腾讯云CDN后显示403错误的解决办法插图11

若需要url能直接在浏览器中访问,需要勾选允许空refer哦。

IP黑白名单问题

在CDN控制台配置了ip黑白名单,实际访问的ip不符合配置规则,导致出现 403

网站使用腾讯云CDN后显示403错误的解决办法插图12
网站使用腾讯云CDN后显示403错误的解决办法插图13

常见问题:

问:为什么配置了 IP 黑名单,还是可以正常访问,响应 200,而不是 403 ?

答:这种情况一般都是客户端真实出口 IP 跟 IP 黑名单里配置的 IP 不一致导致 的。建议获取客户端真实出口 IP,可以通过 IP 工具查询;也可以通过下载 CDN 的 日志,从CDN的日志去查找这条请求,CDN 的日志里记录了客户端 IP。

问:发现恶意请求的情况,把恶意请求的客户端 IP 配置到黑名单了,为什么还是不断有请求 CDN ?

答:CDN 作为一个服务端,无法控制客户端不请求CDN,CDN 能做的是当恶 意请求到 CDN 的时候,CDN 根据配置的安全规则拒绝不合法的请求,以 403 的形式拒绝访问。

、UA黑白名单问题

网站使用腾讯云CDN后显示403错误的解决办法插图14
网站使用腾讯云CDN后显示403错误的解决办法插图15

配置了 UA 黑白名单,User-Agent 名单类型如下:

黑名单:黑名单内的 User-Agent 字段均无法访问当前资源。

白名单:只有白名单内的 User-Agent 字段能访问当前资源,白名单以外的 User-Agent 字段均无法访问当前资源。

黑名单和白名单互斥,同一时间只支持其中一种方式生效。

例如:配置UA黑名单

网站使用腾讯云CDN后显示403错误的解决办法插图16

非黑名单UA可以正常访问

网站使用腾讯云CDN后显示403错误的解决办法插图17

黑名单的ua则返回403

网站使用腾讯云CDN后显示403错误的解决办法插图18

五、URL违规被封禁

403的URL涉及违法不良信息,违反了相关服务协议和《互联网信息服务管理办法》的规定,这种情况下违法 URL 会被 CDN 做屏蔽访问处理。通常这种情况会收到站内信或短信通知,请注意确保 CDN 加速的内容是合法的内容。

六、源站响应403

源站响应了 403 给 CDN,CDN 再把 403 响应给客户端。

一般来说,腾讯云CDN响应头中的server头会带有NWS标示。若403返回的server头非NWS,则可以检查下源站配置。

1.6.1源站自有源

可以绑定 Host 到源站访问测试是否一样存在 403 的情况,如果源站就有 403 的情况,需要先解决源站的 403 问题。另外还有一点需要注意,CDN 的回源 Host 配置错误也可能导致 403 错误。回源 HOST 跟源站的区别就是,源站决定了回源

时请求到的具体 IP 地址,而回源 HOST 决定了回源请求访问到该 IP 地址上的具体站点

1.6.2 源站是腾讯云COS

如果源bucket的访问权限是私有权限,但是没有开启回源鉴权的话,那么就会导致CDN回源请求COS的时候通不过COS的鉴权导致403

网站使用腾讯云CDN后显示403错误的解决办法插图19

可以在接入CDN的时候开启授权服务。

也可以在对象存储控制台中开启对应选项

网站使用腾讯云CDN后显示403错误的解决办法插图20

例如:

未开启前访问403

网站使用腾讯云CDN后显示403错误的解决办法插图21

开启之后:

网站使用腾讯云CDN后显示403错误的解决办法插图22

最后

以上是针对接入CDN的常见403问题的一些原因,希望能在各位读者的有所帮助。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容