关于宝塔强制开启HTTPS时,如果站点部署了301跳转或者部署了CDN加速,使用浏览器进行访问CDN加速资源后,无限循环301状态码。导致出现这个问题的原因可能是因为站点开启了HTTP重定向至HTTPS的功能,并且CDN控制台上配置的回源端口为80。在这种情况下,由于CDN回源端口为80,客户端无论是通过HTTP还是HTTPS访问CDN加速域名时,CDN在回源的时候都是使用HTTP请求源站,此时会触发源站的HTTPS强制跳转逻辑,然后源站会要求CDN重新发送一个HTTPS的请求,但是CDN仍然会发送HTTP请求,然后再进行跳转,以此类推,就会出现反复重定向问题,最终导致出现报错。
排查问题原因:
打开浏览器,按F12打开开发者模式,然后切换到Network标签页,刷新网页重新访问站点,发现出现较多301重定向的情况。
解决方法:
1、可以考虑关闭站点的HTTP重定向至HTTPS的强制跳转功能,也就是关闭宝塔SSL的强制HTTPS功能。
2、由于使用了CDN,且客户端的请求都是先请求到CDN节点。如果希望CDN节点获取客户端的请求是HTTPS协议时,可以在CDN控制台上设置HTTP强制跳转。具体操作步骤如下:
1、登录CDN控制台。
2、在左侧导航栏,单击域名管理。
3、在域名管理页面,单击目标域名对应的管理。
4、在指定域名的左侧导航栏,单击HTTPS配置。
5、在强制跳转区域,单击修改配置。
6、在强制跳转对话框,选择跳转类型。
7、强制跳转
8、选择HTTP->HTTPS(将客户端到CDN节点的请求强制301重定向为HTTPS方式,以确保访问安全。)
点击确认保存配置即可。