Redis 6.0 TLS支持

原文: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多线程。

猜你喜欢

转载自blog.51cto.com/13739602/2506099