Redis 6.0 TLS支持

25 篇文章 1 订阅

原文:https://redis.io/topics/encryption

翻译:Wen Hui

转载:中间件小哥

Redis从版本6开始支持SSL / TLS,这是一项可选功能,需要在编译时启用。

 

编译

要使用TLS支持进行构建,你需要OpenSSL开发库(例如Debian / Ubuntu上的libssl-dev)。

运行make BUILD_TLS = yes。

 

验证

要使用TLS运行Redis测试套件,你需要TCL的TLS支持(即Debian / Ubuntu上的tcl-tls软件包)。

1. 运行./utils/gen-test-certs.sh生成根CA证书和服务器证书。

2. 运行./runtest --tls或./runtest-cluster --tls,以TLS模式运行Redis和Redis集群测试。

 

手动运行

要以TLS模式手动运行Redis服务器(假设已调用gen-test-certs.sh,因此示例证书/密钥可用):

./src/redis-server --tls-port 6379 --port 0 \

--tls-cert-file ./tests/tls/redis.crt \

--tls-key-file ./tests/tls/redis.key \

--tls-ca-cert-file ./tests/tls/ca.crt

使用redis-cli连接到此Redis服务器:

./src/redis-cli –tls --cert ./tests/tls/redis.crt --key ./tests/tls/redis.key \--cacert ./tests/tls/ca.crt

 

证书配置

为了支持TLS,必须为Redis配置X.509证书和私钥。此外,在验证证书时,必须指定可信任的根CA证书文件或路径。为了支持基于DH的密码,还可以配置DH params文件。例如:

tls-cert-file /path/to/redis.crt

tls-key-file /path/to/redis.key

tls-ca-cert-file /path/to/ca.crt

tls-dh-params-file /path/to/redis.dh

 

TLS监听端口

tls-port配置可在指定端口上接受SSL / TLS连接。这是侦听TCP连接的额外端口,因此可以同时使用TLS和非TLS连接访问不同端口上的Redis实例。

您可以指定端口0以完全禁用非TLS端口。要仅在默认Redis端口上启用TLS,请使用:

port 0

tls-port 6379

 

客户端证书认证

默认情况下,Redis使用双向TLS并要求客户端使用有效证书进行身份验证(根据由ca-cert-file或ca-cert-dir指定的受信任根CA证书进行身份验证)。

您可以使用tls-auth-clients no禁用客户端身份验证。

 

主从复制

Redis主服务器以相同的方式处理连接客户端和从服务器,因此上述tls-port和tls-auth-clients指令也适用于复制链接。

在从服务器端,必须指定tls-replication yes才能将TLS用于到主服务器的对外连接。

 

集群

使用Redis集群时,请使用tls-cluster yes以便为集群和跨节点连接启用TLS。

 

Sentinel(哨兵)模式

Sentinel从通用Redis配置继承其网络配置,因此上述所有内容同样适用于Sentinel。

连接到主服务器时,Sentinel将使用tls-replication指令来确定是否需要TLS或非TLS连接。

 

附加配置

可以使用其他TLS配置来控制TLS协议版本,密码和密码套件等的选择。有关更多信息,请查阅带备注的redis.conf。

 

局限性

TLS当前不支持I / O多线程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值