redis_tls
1 TLS 说明
TLS(Transport Layer Security)加密协议,TLS协议具有比SSL(Secure Sockets Layer)协议更好的加密技术和更高级别的安全性,可进一步保障数据通信安全。
TLS协议是SSL协议的升级版,当前已成为互联网加密通信的标准协议,在现代网络中被广泛使用。以下是TLS相对SSL的一些优势:
加密强度:TLS协议使用更强大的加密技术,例如AES(Advanced Encryption Standard)算法。
安全性:TLS协议采用更安全的算法和协议,例如SHA-2(Secure Hash Algorithm 2)算法。
兼容性:TLS协议是更现代化的协议,更加兼容现代浏览器和服务器,且支持更广泛的加密协议和密码套件。
安全更新:TLS协议支持实时升级加密算法和协议。
1.1 单向认证和双向认证
在单向认证中,只有 Redis 服务器需要提供证书,客户端会验证服务器的身份,而服务器不会对客户端进行身份验证。
双向认证要求客户端和服务器都提供证书,并且双方都会验证对方的身份。这种认证方式提供了更高的安全性,确保只有经过授权的客户端才能连接到 Redis 服务器。
下面例子中为单向认证例子。
2 服务端启用 TLS
2.1 创建私钥
2.2 通过私钥生成一个自签名证书
2.3 修改配置
tls-cert-file /path/to/redis.crt
tls-cert-file /path/to/redis.crt
作用:指定 Redis 服务器的 TLS 证书文件路径。
证书内容:
该文件应包含 Redis 服务器的公钥证书(通常为 PEM 格式)。
证书需由受信任的证书颁发机构(CA)签发,或为自签名证书。
用途:
客户端通过此证书验证 Redis 服务器的身份。
证书中的
Subject Alternative Name (SAN)
或Common Name (CN)
需与 Redis 服务器的域名或 IP 匹配。
tls-key-file /path/to/redis.key
tls-key-file /path/to/redis.key
作用:指定 Redis 服务器的 TLS 私钥文件路径。
私钥内容:
该文件应包含与证书(
redis.crt
)对应的私钥(PEM 格式)。私钥必须严格保密,仅限 Redis 进程访问。
用途:
用于加密客户端与服务器之间的通信。
在 TLS 握手过程中,服务器使用私钥证明对证书的所有权。
tls-ca-cert-file /path/to/ca.crt
tls-ca-cert-file /path/to/ca.crt
作用:指定受信任的 CA 证书文件路径。
CA 证书内容:
该文件应包含签发 Redis 服务器证书的根 CA 或中间 CA 的公钥证书(PEM 格式)。
如果是自签名证书,需将自签名证书作为 CA 证书配置。
用途:
Redis 服务器使用此 CA 证书验证客户端证书(如果启用双向认证)。
客户端也会使用此 CA 证书验证服务器证书(除非客户端配置了其他信任链)。
3 客户端连接
4 常见报错
4.1 服务端未配置 TLS
4.2 客户端证书过期
Last updated