在CentOS上配置Redis以使用SSL加密传输,可以按照以下步骤进行:
首先,确保你已经安装了Redis。如果没有安装,可以使用以下命令进行安装:
sudo yum install epel-release
sudo yum install redis
你需要生成一个自签名的SSL证书和密钥。可以使用OpenSSL来生成这些文件。
sudo mkdir /etc/redis/ssl
cd /etc/redis/ssl
# 生成私钥
sudo openssl genrsa -out redis.key 2048
# 生成证书签名请求(CSR)
sudo openssl req -new -key redis.key -out redis.csr -subj "/CN=localhost"
# 生成自签名证书
sudo openssl x509 -req -days 365 -in redis.csr -signkey redis.key -out redis.crt
编辑Redis配置文件 /etc/redis.conf,添加或修改以下配置项:
# 启用SSL
tls-port 6379
tls-cert-file /etc/redis/ssl/redis.crt
tls-key-file /etc/redis/ssl/redis.key
tls-ca-cert-file /etc/redis/ssl/redis.crt # 如果你使用的是自签名证书,可以指向同一个文件
tls-auth-clients no
tls-verify-client no
保存配置文件后,重启Redis服务以应用更改:
sudo systemctl restart redis
你可以使用 redis-cli 来验证SSL配置是否生效。首先,确保你使用的是SSL端口(默认是6379):
redis-cli -p 6379 --ssl
然后,尝试连接到Redis服务器:
127.0.0.1:6379> ping
PONG
如果返回 PONG,则表示SSL配置成功。
在客户端连接Redis时,也需要配置SSL。以下是一个Python示例,使用 redis-py 库连接到SSL启用的Redis服务器:
import redis
r = redis.StrictRedis(
host='localhost',
port=6379,
ssl=True,
ssl_cert_reqs='required', # 如果需要验证服务器证书
ssl_ca_certs='/etc/redis/ssl/redis.crt',
ssl_keyfile='/etc/redis/ssl/redis.key'
)
print(r.ping()) # 应该输出 True
通过以上步骤,你可以在CentOS上配置Redis以使用SSL加密传输。