Redis 启用 TLS 加密传输配置

Redis 启用 TLS 加密传输配置

一、Redis TLS 加密概述

Redis 从 6.0 版本开始原生支持 TLS 加密传输,可以保护客户端与服务器之间的通信安全,防止数据被窃听或篡改。

二、准备工作

确认 Redis 版本‌:

redis-server --version

确保版本 ≥ 6.0

安装依赖‌:

sudo apt-get install openssl

三、生成 TLS 证书

1. 创建证书目录

mkdir -p /etc/redis/certs
cd /etc/redis/certs

2. 生成 CA 私钥和证书

openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt
  1. 生成 Redis 服务器证书
# 生成私钥
openssl genrsa -out redis.key 2048# 创建证书签名请求 (CSR)
openssl req -new -key redis.key -out redis.csr# 使用 CA 签署证书
openssl x509 -req -in redis.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out redis.crt -days 365 -sha256# 合并证书和私钥
cat redis.key redis.crt > redis.pem

4. 设置权限

chown redis:redis /etc/redis/certs/*
chmod 600 /etc/redis/certs/*

四、配置 Redis 服务器 TLS

编辑 /etc/redis/redis.conf:

# 启用 TLS
tls-port 6379
port 0  # 禁用非 TLS 端口# 证书配置
tls-cert-file /etc/redis/certs/redis.crt
tls-key-file /etc/redis/certs/redis.key
tls-ca-cert-file /etc/redis/certs/ca.crt# 安全设置
tls-auth-clients yes  # 要求客户端使用证书
tls-protocols "TLSv1.2 TLSv1.3"
tls-ciphers DEFAULT:!MEDIUM
tls-ciphersuites TLS_CHACHA20_POLY1305_SHA256
tls-prefer-server-ciphers yes

五、重启 Redis 服务

sudo systemctl restart redis-server

六、客户端连接配置

###1. Redis CLI 连接

redis-cli --tls \--cert /etc/redis/certs/redis.crt \--key /etc/redis/certs/redis.key \--cacert /etc/redis/certs/ca.crt

2. 编程语言客户端示例

PHP (Predis)

$client = new Predis\Client(['scheme' => 'tls','host'   => 'your.redis.host','port'   => 6379,'ssl'    => ['cafile'      => '/path/to/ca.crt','verify_peer' => true]
]);

Python (redis-py)

import redisr = redis.Redis(host='your.redis.host',port=6379,ssl=True,ssl_ca_certs='/path/to/ca.crt',ssl_cert_reqs='required'
)

七、高级配置选项

双向认证‌:

tls-auth-clients yes

仅允许特定密码套件‌:

tls-ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384"

会话缓存‌:

tls-session-caching yes
tls-session-cache-size 1000000
tls-session-cache-timeout 300

八、测试与验证

测试连接‌:

openssl s_client -connect localhost:6379 -cert /etc/redis/certs/redis.crt -key /etc/redis/certs/redis.key -CAfile /etc/redis/certs/ca.crt

查看 TLS 信息‌:

redis-cli --tls -a yourpassword --no-auth-warning --tls-ca-cert-file /etc/redis/certs/ca.crt INFO SECURITY

九、常见问题解决

证书错误‌:

  1. 确保证书路径正确
  2. 检查证书权限 (redis 用户可读)
  3. 验证证书有效期

连接失败‌:

sudo tail -f /var/log/redis/redis-server.log

性能调优‌:

  1. 对于高并发场景,考虑启用会话缓存
  2. 监控 TLS 握手性能

十、安全最佳实践

  1. 定期轮换证书 (建议每年一次)
  2. 禁用旧版 TLS 协议 (如 TLS 1.0/1.1)
  3. 监控证书过期时间
  4. 考虑使用证书管理工具 (如 certbot)
  5. 在生产环境使用受信任的 CA 签发证书

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/79400.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】深入理解程序地址空间

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:Linux 目录 前言 一、什么是程序地址空间 二、深入理解程序地址空间 1. 引例 2. 理解地址转化 3. 再谈程序地址空间 4. 补充知识 总结 前言 在现代操作系…

【深度学习-Day 5】Python 快速入门:深度学习的“瑞士军刀”实战指南

Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…

解决在 Linux 中 WPS 字体缺失问题

解决在 Linux 中 WPS 字体缺失问题 安装方式 安装方式 首先下载你所需要的字体文件 在字体文件所在的目录下右键点击在命令行中打开 或 Open in Terminal sudo mkdir /usr/share/fonts/myfontssudo cp ./* /usr/share/fonts/myfonts执行命令,更新字体缓存 sudo fc…

668SJBH报刊发行系统

1 前言 随着我国信息产业的迅猛发展,手工管理方式已不适应社务管理的要求,报社的日常管理正面临着信息化的挑战,采用计算机管理以提高服务质量和管理水平势在必行。发行管理是社务管理的一个重要组成部分,是报社和客户联系的纽带…

K8S - 从零构建 Docker 镜像与容器

一、基础概念 1.1 镜像(Image) “软件的标准化安装包” ,包含代码、环境和配置的只读模板。 技术解析 镜像由多个层组成,每层对应一个Dockerfile指令: 应用代码 → 运行时环境 → 系统工具链 → 启动配置核心特性…

better_fbx 下载

目录 v6.0.5下载: better_fbx 下载 v6.0.5下载: Blender FBX模型导入导出插件 Better FBX Importer & Exporter V6.0.5V5.4.10 For Blender 2.8 | 龋齿一号GFXCamp better_fbx 下载 How To Install Launch Blender, navigate to Edit->User P…

Spring AOP 典型应用场景

AOP 典型应用场景 1. 日志记录(Logging)代码实现 2. 权限校验(Authentication)代码实现 3. 性能监控(Performance Monitoring)代码实现 4. 缓存处理(Caching)代码实现 5. 重试机制&a…

开始一个vue项目-day2

这次新增的功能有: 1、使用cookie存储token 参考网站:https://vueuse.org/ 安装包: npm i vueuse/integrations npm i universal-cookie^7 2、cookie的设置读取和删除,代码:composables/auth.js import { useCookies } from …

「Mac畅玩AIGC与多模态18」开发篇14 - 多字段输出与结构控制工作流示例

一、概述 本篇在输入变量基础上,演示如何通过执行 LLM 节点输出多个结构化字段,并传递至结束节点。开发人员将掌握如何配置结构化输出格式,实现提示词与字段的准确映射,为后续引入条件判断、循环结构等逻辑控制建立结构输出规范基础。 二、环境准备 macOS 系统Dify 平台已…

JWT解析

什么是JWT JSON Web Token (JWT) 是一种开放标准 (RFC 7519),它定义了一种紧凑且独立的方式,用于在各方之间以 JSON 对象的形式安全地传输信息。此信息可以验证和信任,因为它是经过数字签名的。…

C语言中的自定义类型 —— 结构体.位段.联合体和枚举

自定义类型 1. 前言2. 结构体2.1 结构体的声明2.2 结构体变量的定义和初始化2.3 结构体的特殊声明2.4 结构体的自引用2.5 结构体的内存对齐2.6 修改默认对齐数2.7 结构体传参 3. 位段4. 联合体5. 枚举6. 结言 1. 前言 在C语言中已经为用过户提供了内置类型,如&…

StarRocks 查询优化器深度解析

StarRocks 查询优化器概览 1. Development History of StarRocks 过去五年,StarRocks 发布了三个大版本: StarRocks 1.0:通过向量化引擎和 CBO,打造极速 OLAP 数据库。 StarRocks 2.0:通过主键模型、数据湖分析和查询…

如何提高情商?(优化版)

引言 提高情商(EQ)是一个需要长期练习和自我反思的过程,核心在于理解自己、管理情绪、共情他人并有效沟通。以下是一些具体且可操作的方法,结合理论和实际场景,帮助你逐步提升: 一、核心方法:…

Python爬虫实战:获取好大夫在线各专业全国医院排行榜数据并分析,为患者就医做参考

一、引言 在当今医疗资源丰富但分布不均的背景下,患者在选择合适的心血管内科医院时面临诸多困难。好大夫在线提供的医院排行榜数据包含了医院排名、线上服务得分、患者评价得分等重要信息,对患者选择医院具有重要的参考价值。本研究通过爬取该排行榜数据,并进行深入分析,…

【AI面试准备】电商购物车AI测试设计与实施

面试题:案例实践: 为电商购物车设计AI测试:通过用户行为日志训练点击路径预测模型,动态生成边界条件测试用例。 为了顺利通过面试,回答应结构清晰、技术深入,并突出实际应用与创新。以下为分步解答&#…

Java 中使用 Callable 创建线程的方法

一、Callable 接口概述​ Callable接口位于java.util.concurrent包中,与Runnable接口类似,同样用于定义线程执行的任务,但它具有以下独特特性:​ 支持返回值:Callable接口声明了一个call()方法,该方法会在…

2025-SMS短信验证服务或存风险,小心账号隐私“失守”

近期,火绒安全情报中心监测到一款伪装成具备SMS短信验证码接收服务的程序。该程序通过部署持久化后门(即僵尸网络节点)窃取敏感信息。火绒安全提醒广大用户务必从官方或可信渠道下载软件,避免因使用来路不明的程序而导致账号被盗或…

docker部署Open WebUI下载速度慢解决方法

docker pull ghcr.nju.edu.cn/open-webui/open-webui:main改成这个就可以了

气泡图、桑基图的绘制

1、气泡图 使用气泡图分析某一年中国同欧洲各国之间的贸易情况。 气泡图分析的三个维度: • 进口额:横轴 • 出口额:纵轴 • 进出口总额:气泡大小 数据来源:链接: 国家统计局数据 数据概览(进出口总额&…

前端面经-VUE3篇(三)--vue Router(二)导航守卫、路由元信息、路由懒加载、动态路由

一、导航守卫 vue Router 中的 导航守卫(Navigation Guards) 是一个非常重要的功能,用于在路由切换过程中,拦截、控制、检查或延迟页面跳转。 你可以理解为: 🔐 “进门前的保安”,控制哪些页面…