结论/教程:要设置Redis密码保护,在redis.conf文件中添加requirepass your_strong_password,然后重启Redis服务。测试密码:redis-cli -a your_strong_password。启动加密服务,使用SSL/TLS配置:生成证书,编辑redis.conf添加tls-port 6380、tls-cert-file、tls-key-file、tls-ca-cert-file,重启后使用redis-cli --tls -p 6380连接。这是最基本的安全步骤。
来源1
在 Redis 的配置文件 redis.conf 中,找到 # requirepass foobared 这一行,去掉前面的注释符号 #,并将 foobared 改为你的密码,例如 requirepass mypassword。然后重启 Redis 服务即可。客户端连接时需要使用 -a 或 --pass 参数提供密码:redis-cli -a mypassword。
来源2
Redis 6.0 引入了 ACL(访问控制列表),比简单的密码更安全。使用 ACL 文件:aclfile /etc/redis/users.acl。在 users.acl 中定义用户:user default off user myuser on >mypassword ~* +@all。配置 requirepass 作为备选,但推荐 ACL。然后在 redis.conf 中加载 aclfile。
来源3
启用 TLS 加密:先生成自签名证书。openssl req -x509 -newkey rsa:4096 -keyout redis.key -out redis.crt -days 365 -nodes。将 redis.conf 配置:tls-port yes port 0 tls-cert-file /path/to/redis.crt tls-key-file /path/to/redis.key tls-ca-cert-file /path/to/redis.crt。客户端:redis-cli --tls -p 6380 --cert client.crt --key client.key。
来源4
绑定 IP 地址以增强安全:bind 127.0.0.1 0.0.0.0 只允许本地或指定IP访问。结合密码:requirepass secret。禁用危险命令:rename-command FLUSHDB "" rename-command FLUSHALL "" rename-command CONFIG ""。
来源5
Redis TLS 配置完整示例:在 redis.conf 中添加:tls-cluster yes tls-replication yes port 0 tls-port 6380 tls-cert-file /etc/redis/redis.crt tls-key-file /etc/redis/redis.key tls-ca-cert-file /etc/redis/ca.crt tls-protocols "TLSv1.2 TLSv1.3" tls-auth-clients yes。重启后验证:redis-cli --tls -p 6380 ping 返回 PONG。
来源6
密码最佳实践:使用强密码,至少16位,包含大小写字母数字符号。定期轮换密码。使用 ACL 代替全局密码:ACL SETUSER myuser on >mypassword ~* +@read +@write ~key:*。保存 ACL:ACL SAVE。
来源7
测试安全配置:使用 redis-cli AUTH mypassword,成功返回 OK。未提供密码执行命令返回 NOAUTH Authentication required。TLS 测试:openssl s_client -connect localhost:6380 检查证书。
FAQ
Q: 如何重置Redis密码?
A: 编辑redis.conf修改requirepass,重启服务,或使用CONFIG SET requirepass newpass(需先AUTH)。
Q: TLS证书如何获取?
A: 使用openssl生成自签名,或从CA如Let's Encrypt获取免费证书。
Q: ACL和requirepass区别?
A: requirepass是全局单一密码,ACL支持多用户、多权限更灵活。
Q: Redis加密后性能影响?
A: 有CPU开销约10-20%,但对安全必要,使用硬件加速可优化。