【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对 ...
随机推荐
- Bash 脚本发送消息到企业微信的办法
1. Study From https://www.cnblogs.com/elvi/p/11444388.html 2. 申请或者使用已经有的企业微信. 首先是获取一下企业id 方法如图: 3. 创 ...
- Windows命令行查看相关信息
Windows命令行查看相关信息 查看网络相关 查看网络相关 netstat -ano |findstr -v 127 |findstr -v 10.110 |findstr -v 10.6 |fin ...
- MySQL备份恢复简单处理方法
客户备份恢复的脚本处理简要如下: 首先登陆mysql服务器 方法如下: mysql -uroot -p 输入密码即可登陆 然后需要创建一个数据库, 个人感觉同名恢复最容易出问题 create data ...
- 通过Environment获取属性文件的值,竟然会调用到JNDI服务!!!
一.背景介绍 某应用在压测过程机器cpu使用率超过80%,通过在线诊断工具进行CPU采样生成的火焰图,看到程序中频繁调用environment.getProperty()获取属性值,而其内部调用了Jn ...
- Ant Design Vue 中Drawer自定头部的样式、内容部分的样式、弹出层的样式
<a-drawer :title="myTitle" placement="right" :visible="visible" @cl ...
- 【JS 逆向百例】复杂的登录过程,最新WB逆向
声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 逆向目标 本次的逆向目标是 ...
- SignalR系列文章02---netCoreMvc创建Demo
1. 新建.net core MVC项目,并引入nuget包 2. 添加客户端库 3. 修改startUp.cs文件,增加services.AddSignalR();和endpoints.Map ...
- 手撕Vue-实现将数据代理到Vue实例
前言 经过上一篇文章的学习,完成了 v-on 指令的实现,接下来我们来实现将数据代理到 Vue 实例上. 为什么要完成这个功能呢?因为我们在使用 Vue 的时候,可以直接通过 this.xxx 的方式 ...
- NLP涉及技术原理和应用简单讲解【二】:paddle(分布式训练、AMP自动混合精度训练、模型量化、模型性能分析)
参考链接: https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/06_distributed_training/cluster_q ...
- Python使用Paramiko实现SSH管理
paramiko 是一个用于在Python中实现SSHv2协议的库,它支持对远程服务器进行加密的通信.目前该模块支持所有平台架构且自身遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接,你 ...