问题描述

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的计划及问题的更多相关文章

  1. spring boot redis 缓存(cache)集成

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  2. Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager 转发非原创

    Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager   Redis缓存服务器是一款key/value数据库,读11 ...

  3. Redis缓存何以一枝独秀?(2) —— 聊聊Redis的数据过期、数据淘汰以及数据持久化的实现机制

    大家好,又见面了. 本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面.如果感兴趣,欢迎关注以获取后续更新. 上一篇文章中呢,我们简单的介绍了下Re ...

  4. Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager

    Redis缓存服务器是一款key/value数据库,读110000次/s,写81000次/s,因为是内存操作所以速度飞快,常见用法是存用户token.短信验证码等 官网显示Redis本身并没有Wind ...

  5. [转]Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager

    转自:http://www.cnblogs.com/oppoic/p/6165581.html Redis缓存服务器是一款key/value数据库,读110000次/s,写81000次/s,因为是内存 ...

  6. Redis缓存机制一为什么要用Redis

    1.持久化数据库的缺点   1)存储在部署数据库的硬盘上 平时我们使用的关系型数据库有MySql,Oracle以及SqlServer等,通常通过数据驱动来链接数据库进行增删改查.         那么 ...

  7. Redis 缓存 + Spring 的集成示例(转)

    <整合 spring 4(包括mvc.context.orm) + mybatis 3 示例>一文简要介绍了最新版本的 Spring MVC.IOC.MyBatis ORM 三者的整合以及 ...

  8. ABP入门系列(13)——Redis缓存用起来

    ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1. 引言 创建任务时我们需要指定分配给谁,Demo中我们使用一个下拉列表用来显示当前系统的所有用 ...

  9. Redis缓存用起来

    Redis缓存用起来 1. 引言 创建任务时我们需要指定分配给谁,Demo中我们使用一个下拉列表用来显示当前系统的所有用户,以供用户选择.我们每创建一个任务时都要去数据库取一次用户列表,然后绑定到用户 ...

  10. Mybatis一级缓存和二级缓存 Redis缓存

    一级缓存 Mybatis的一级缓存存放在SqlSession的生命周期,在同一个SqlSession中查询时,Mybatis会把执行的方法和参数通过算法生成缓存的键值,将键值和查询结果存入一个Map对 ...

随机推荐

  1. Mysql数据库部分管理命令极简学习总结

    背景 今天遇到一个得很奇怪的问题. Mysql一个运行时间很长的select阻塞了对select里面左连接表做create index 操作的SQL 当时感觉不应该, 一直以为读锁不会与独占更新锁互斥 ...

  2. 【原创】关于xenomai3 RTnet的一点记录

    xenomai3协议栈RTnet支持TCP.UDP,但不支持IGMP: 对ARP支持有限制:地址解析的延迟会影响数据包传输延迟,RTnet为实时性考虑,路由表设计静态的,只在设置期间配置,或者接收到其 ...

  3. vue中render函数使用attrs绑定id、class、style、事件(5)

    1.h函数的三个参数 第一个参数是必须的. 类型:{String | Object | Function} 一个 HTML 标签名.一个组件.一个异步组件.或一个函数式组件. 是要渲染的html标签. ...

  4. 离开页面关闭video标签

    <video src="./play.mp4" id="maskmore_1" controls="controls" autopla ...

  5. 从零开始配置vim(26)——LSP UI 美化

    之前我们通过几个实例演示如何配置其他语言的lsp服务,相信各位小伙伴碰到其他的编程语言也能熟练的配置它对应的lsp服务.本篇讲作为一个补充,我们来优化一下LSP 相关的显示 配置 UI 原始的 lsp ...

  6. PE格式:新建节并插入代码

    经过了前一章的学习相信你已经能够独立完成FOA与VA之间的互转了,接下来我们将实现在程序中插入新节区,并向新节区内插入一段能够反向连接的ShellCode代码,并保证插入后门的程序依旧能够正常运行不被 ...

  7. CF1706E Qpwoeirut and Vertices 题解

    题目链接:CF 或者 洛谷 官解看上去挺智慧的,来点朴素的解法.我们来当做纯 ds 题去做.首先明确一点,图中若干个点关于最早连通性的这个问题可以考虑 \(MST\),我们有一类东西叫 \(krusk ...

  8. deque的rotate方法

    deque对象支持旋转操作,可以将元素向左或向右循环移动. 例如: from collections import deque dq = deque([1, 2, 3, 4]) dq.rotate(1 ...

  9. Linux shell的while循环

    while循环 #!/bin/bash #其中":"表示while循环的条件永远为真的意思 while : do read -p "Enter a number [1-5 ...

  10. Windows OhmGraphite 配置

    Windows OhmGraphite 配置 由于windows_exporter无法监控温度相关的指标,那么就需要使用OhmGraphite进行监控该指标. 下载 访问 https://github ...