【Azure Redis 缓存 Azure Cache For Redis】Azure Redis删除 TLS 1.0 和 1.1的计划及问题
问题描述
Azure Redis 正式关闭TLS1.0和1.1关闭的时间
根据文档描述Azure Redis阶段2我们将停止支持 TLS 1.1 和 TLS 1.0,暂时计划 2020 年 12 月 31 日之后开始。
整个行业正趋向于使用传输层安全性 (TLS) 1.2 或更高版本。 TLS 版本 1.0 和 1.1 已知很容易遭到 BEAST 和 POODLE 之类的攻击,并且存在其他常见漏洞和披露 (CVE) 弱点。 此外,它们不支持支付卡行业 (PCI) 合规性标准推荐的新式加密法和加密套件。 此 TLS 安全性博客详细说明了其中一些漏洞。
作为此项工作的一部分,我们将对 Azure Cache for Redis 进行以下更改:
阶段 1: 对于新创建的缓存实例,我们会将默认的最低 TLS 版本配置为 1.2(以前为 TLS 1.0)。 目前,不会更新现有的缓存实例。 如果需要,仍可使用 Azure 门户或其他管理 API 将最低的 TLS 版本更改 为 1.0 或 1.1,以实现后向兼容性。
阶段 2: 我们将停止支持 TLS 1.1 和 TLS 1.0。 在此更改之后,应用程序必须使用 TLS 1.2 或更高版本才能与缓存通信。 如果我们迁移 Azure Cache for Redis 服务以仅支持 TLS 1.2 或更高版本,则该服务应可用。
阶段 2 暂时计划 2020 年 12 月 31 日之后开始。 但是,我们强烈建议你立即开始规划此更改,并主动更新客户端以支持 TLS 1.2 或更高版本。
在Azure Redis的门户上,可以直接修改TLS的版本,如下图:

而在服务端Redis修改了TLS版本后,客户端也需要验证及考虑如下问题:
1 . 是否针对所有使用Redis的Web App 都需要升级为1.2 版本,如果Web App的.Net Framework使用的是4.5.2及以下,或者4.6.1是否全部升级为1.2 呢?
如果应用程序使用的是.NET Framework 4.5.2或更低版本,Redis .NET客户端默认使用最低的TLS版本,是需要手动启用TLS 1.2的。
如果应用程序使用的.NET Framework 4.6或更高版本的话,则使用最新的TLS版本,是不需要在代码中手动启用的。
微软官方文档推荐检查应用程序是否合规的方式是:可以通过把测试环境的Redis的最低TLS版本值设置为TLS 1.2,然后运行测试,如果应用程序可继续按预期方式运行,则应用程序可能是合规的。
2 . Redis 是否需要全部手动升级为1.2
在停用TLS 1.1和1.0之前,建议把redis的最低TLS版本修改为1.2,然后检查应用程序是否可以正常连接。如果有需要的话,则把应用程序Redis客户端配置为启用TLS 1.2。
3 . Redis 的使用涉及到.net 、.net core 、java(spring boot)框架,.net 使用的是StackExchange.Redis ,java 使用的是Jedis . 因此是否都需要都需要设置 ssl=true 和 sslprotocols=tls12
对于.NET Framework的话,根据Framework版本来检查。
对于.NET Core的话取决与操作系统本身,StackExchange.Redis修改的方式是在连接字符串中设置ssl=true 和 sslprotocols=tls12。
对于java的话,在java 8中默认会使用TLS 1.2,并且大多数情况都不需要更新客户端配置。对于低版本的Java如果使用的是Jedis可以通过如下代码片段指定TLS设置。
SSLSocketFactory sslSocketFactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLParameters sslParameters = new SSLParameters();
sslParameters.setEndpointIdentificationAlgorithm("HTTPS");
sslParameters.setProtocols(new String[]{"TLSv1.2"});
URI uri = URI.create("rediss://host:port");
JedisShardInfo shardInfo = new JedisShardInfo(uri, sslSocketFactory, sslParameters, null);
shardInfo.setPassword("cachePassword");
Jedis jedis = new Jedis(shardInfo);
参考资料
删除与 Azure Cache for Redis 配合使用的 TLS 1.0 和 1.1: https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-remove-tls-10-11
【Azure Redis 缓存 Azure Cache For Redis】Azure Redis删除 TLS 1.0 和 1.1的计划及问题的更多相关文章
- spring boot redis 缓存(cache)集成
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...
- Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager 转发非原创
Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager Redis缓存服务器是一款key/value数据库,读11 ...
- Redis缓存何以一枝独秀?(2) —— 聊聊Redis的数据过期、数据淘汰以及数据持久化的实现机制
大家好,又见面了. 本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面.如果感兴趣,欢迎关注以获取后续更新. 上一篇文章中呢,我们简单的介绍了下Re ...
- Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager
Redis缓存服务器是一款key/value数据库,读110000次/s,写81000次/s,因为是内存操作所以速度飞快,常见用法是存用户token.短信验证码等 官网显示Redis本身并没有Wind ...
- [转]Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager
转自:http://www.cnblogs.com/oppoic/p/6165581.html Redis缓存服务器是一款key/value数据库,读110000次/s,写81000次/s,因为是内存 ...
- Redis缓存机制一为什么要用Redis
1.持久化数据库的缺点 1)存储在部署数据库的硬盘上 平时我们使用的关系型数据库有MySql,Oracle以及SqlServer等,通常通过数据驱动来链接数据库进行增删改查. 那么 ...
- Redis 缓存 + Spring 的集成示例(转)
<整合 spring 4(包括mvc.context.orm) + mybatis 3 示例>一文简要介绍了最新版本的 Spring MVC.IOC.MyBatis ORM 三者的整合以及 ...
- ABP入门系列(13)——Redis缓存用起来
ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1. 引言 创建任务时我们需要指定分配给谁,Demo中我们使用一个下拉列表用来显示当前系统的所有用 ...
- Redis缓存用起来
Redis缓存用起来 1. 引言 创建任务时我们需要指定分配给谁,Demo中我们使用一个下拉列表用来显示当前系统的所有用户,以供用户选择.我们每创建一个任务时都要去数据库取一次用户列表,然后绑定到用户 ...
- Mybatis一级缓存和二级缓存 Redis缓存
一级缓存 Mybatis的一级缓存存放在SqlSession的生命周期,在同一个SqlSession中查询时,Mybatis会把执行的方法和参数通过算法生成缓存的键值,将键值和查询结果存入一个Map对 ...
随机推荐
- 从好玩到好用:程序员用AI提效的那些事儿
本片内容是[AI思维空间]ChatGPT纵横编程世界,点亮智慧火花的续作,主要记录组内开发小伙伴儿们在开发过程中的实际应用案例,记录典型案例,尽量不要和其他人重复,以解决开发过程中的实际问题为主,设计 ...
- React Hooks源码深度解析
作者:京东零售 郑炳懿 前言 React Hooks是React16.8 引入的一个新特性,它允许函数组件中使用state和其他 React 特性,而不必使用类组件.Hooks是一个非常重要的概念,因 ...
- 关于Js debounce(防抖)函数和throttle(节流)小结
闭包的实际运用防抖 防抖:当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次, 如果设定的时间到来之前,又一次触发了事件,就重新开始 延时. (如果在一段时间内,又触发了该事件:就 ...
- 【K哥爬虫普法】一个人、一年半、挣了2000万!
我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识, ...
- 程序员必备!10款实用便捷的Git可视化管理工具
前言 俗话说得好"工欲善其事,必先利其器",合理的选择和使用可视化的管理工具可以降低技术入门和使用的门槛.我们在团队开发中统一某个开发工具的使用能够大大降低沟通成本,提高协作沟通效 ...
- NetCore高级系列文章01---创建项目及配置文件
.NET Core是适用于 Windows.Linux 和 macOS 的免费.开源托管的计算机软件框架,作为.NET开发人员,全面拥抱.NetCore将成为趋势. 本系列文章将分为两大部分讲解.Ne ...
- 数据挖掘机器学习[七]---2021研究生数学建模B题空气质量预报二次建模求解过程:基于Stacking机器学习混合模型的空气质量预测{含码源+pdf文章}
相关文章: 特征工程详解及实战项目[参考] 数据挖掘---汽车车交易价格预测[一](测评指标:EDA) 数据挖掘机器学习---汽车交易价格预测详细版本[二]{EDA-数据探索性分析} 数据挖掘机器学习 ...
- Spring一套全通6—注解编程
百知教育 --- Spring系列课程 --- 注解编程 第一章.注解基础概念 1. 什么是注解编程 指的是在类或者方法上加入特定的注解(@XXX),完成特定功能的开发. @Component pub ...
- MyBatis 源码系列:MyBatis 解析配置文件、二级缓存、SQL
解析全局配置文件 启动流程分析 String resource = "mybatis-config.xml"; //将XML配置文件构建为Configuration配置类 read ...
- 飞桨paddlespeech语音唤醒推理C INT8 定点实现
前面的文章(飞桨paddlespeech语音唤醒推理C定点实现)讲了INT16的定点实现.因为目前商用的语音唤醒方案推理几乎都是INT8的定点实现,于是我又做了INT8的定点实现. 实现前做了一番调研 ...