Moodle开启Redis TLS加密后页面无法加载,可能是什么原因导致的?
Moodle启用Redis TLS加密后页面无法加载的常见原因
- Redis服务端TLS配置不匹配
- 确认Redis配置中
tls-port是否正确开启,若你设置了仅允许TLS连接,需检查是否错误关闭了对应端口,同时校验tls-cert-file、tls-key-file、tls-ca-cert-file三个证书文件的权限是否符合要求,Redis进程是否拥有读取权限,另外还要确认证书在有效期内、且Redis的访问地址与证书的SAN字段匹配。
- 确认Redis配置中
- Moodle侧Redis连接配置错误
- 检查config.php中Redis缓存/会话的配置项,需主动添加TLS启用参数,大部分部署场景需要额外补充
'tls' => true配置,若你的Redis服务使用了自签名证书,还需配置tlscontext参数指定CA证书路径,若未配置且默认开启证书校验,会导致TLS握手失败,你可以临时添加'verify_peer' => false, 'verify_peer_name' => false参数测试连通性(生产环境不建议长期保留该配置)。
- 检查config.php中Redis缓存/会话的配置项,需主动添加TLS启用参数,大部分部署场景需要额外补充
- PHP Redis扩展版本兼容性问题
- 低于5.3.0版本的PHP Redis扩展不支持TLS连接参数,会直接忽略TLS配置走普通TCP连接,最终连接超时导致页面加载失败,你可以执行
php -r "print_r(Redis::VERSION);"命令查看当前安装的扩展版本。
- 低于5.3.0版本的PHP Redis扩展不支持TLS连接参数,会直接忽略TLS配置走普通TCP连接,最终连接超时导致页面加载失败,你可以执行
- 网络与防火墙限制
- 确认Moodle服务器到Redis服务器的TLS端口(默认加密端口常为6380,部分场景仍用6379)已经在安全组、防火墙规则中放通,你可以在Moodle服务器上执行
openssl s_client -connect <Redis地址>:<端口>命令测试TLS链路连通性。
- 确认Moodle服务器到Redis服务器的TLS端口(默认加密端口常为6380,部分场景仍用6379)已经在安全组、防火墙规则中放通,你可以在Moodle服务器上执行
- 旧缓存会话冲突
- 切换TLS连接前的非加密会话残留数据可能导致会话写入异常,触发页面加载阻塞,你可以先清空Redis中所有Moodle相关的缓存数据,或者临时将Moodle的会话存储改为文件系统,确认故障是否由Redis连接异常导致。
内容的提问来源于stack exchange,提问作者Sunavi
相关产品推荐
相关产品推荐

