Redis 6.2X SSL/TLS加密配置研究(主从、集群、压测)

最近因工作需要配置Redis 6.2X版本的SSL/TLS加密网上资料比较少,并且多是直接客户端和服务端直接连接,并未说明主从、集群如何配置,踩了一部分坑,做个记录

前提
  • Redis 6.2X和Redis 6.0X都支持SSL/TLS,但Redis 6.2X比较好的一点是不需要升级gcc版本,默认centos7的gcc版本是4.8,但是Redis6.0X编译是需要升级gcc版本到5.3以上,而Redis6.2X是不需要的

  • 目前以Redis 6.2X某版本作为研究对象

  1. 编译:make BUILD_TLS=yes(如果不这样编译,默认不开启SSL/TLS)
  2. 进入到编译目录,执行./utils/gen-test-certs.sh(Redis自带工具,证书文件,生成的目录在tests/tls目录下,避免自己去搞一些无效的证书)
常规配置
port 0
tls-port 6379
tls-cert-file   ~/tests/tls/redis.crt
tls-key-file   ~/tests/tls/redis.key
tls-ca-cert-file   ~/tests/tls/ca.crt

这样配置文件就算配置完成了

客户端执行:~/src/redis-cli --tls --cert ~/tests/tls/redis.crt --key ~/tests/tls/redis.key --cart ~/tests/tls/ca.crt

即可进行连接成功

主从配置

主从配置需要在常规配置的基础上,增加配置tls-replication

port 0
tls-port 6379
tls-cert-file   ~/tests/tls/redis.crt
tls-key-file   ~/tests/tls/redis.key
tls-ca-cert-file   ~/tests/tls/ca.crt

tls-replication yes
  1. 启动客户端 ~/src/redis-cli --tls --cert ~/tests/tls/redis.crt --key ~/tests/tls/redis.key --cart ~/tests/tls/ca.crt
  2. 执行 REPLICAOF ip port
集群配置

集群配置需要在上述配置下,增加如下配置tls-cluster, 同时打开集群配置(集群配置如何打开,自己网上查)

port 0
tls-port 6379
tls-cert-file   ~/tests/tls/redis.crt
tls-key-file   ~/tests/tls/redis.key
tls-ca-cert-file   ~/tests/tls/ca.crt
tls-replication yes
tls-cluster yes
  1. 执行如何配置进行创建

~/src/redis-cli --tls --cert ~/tests/tls/redis.crt --key ~/tests/tls/redis.key --cart ~/tests/tls/ca.crt --cluster create ip:port ip:port ip:port --cluster-replicas 0

Jedis配置

主要是创建SSLFactory,参照此篇文章【转】网络安全-Java SSLSocketFactory 创建方式 - mao2080 - 博客园

错误信息
  • 主从连接或者客户端连接经常遇到报错

    提示未知协议,实际上还是tls加密问题,以及检查tls-replication yes是否打开

  • 创建集群时遇到报错

    会提示这不是一个cluster 节点,检查过配置cluster-enable是打开的,最终发现是tls加密问题

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐