Microsoft.Web.Redis.RedisSessionStateProvider 是否支持与 redis 存储的 tls 1.2 连接?

Does Microsoft.Web.Redis.RedisSessionStateProvider supports tls 1.2 connection with a redis store?

我正在使用 Microsoft.Web.Redis.RedisSessionStateProvider nuget 包作为会话存储。我们有一个 azure redis 实例,目前在 tls 1.0 中 运行。我在 Application_Start() 方法中添加了以下设置以启用 tls 1.2.

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

我已经把redis的tls版本提升到1.2了。但是有连接错误。在 web.config 中我还需要添加其他内容吗?我现在的web.config在下面。

    <sessionState timeout="20" mode="Custom" customProvider="MySessionStateStore">
  <providers>
    <!--<add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" connectionTimeoutInMilliseconds="5000" operationTimeoutInMilliseconds="1000" retrytimeoutInMilliseconds="5000" server="127.0.0.1" ssl="false" throwOnError="true" />-->
    <add name="MySessionStateStore" port="6380" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="" accessKey="" ssl="true" connectionTimeoutInMilliseconds="5000" operationTimeoutInMilliseconds="1000" retrytimeoutInMilliseconds="5000" throwOnError="true" />
  </providers>
</sessionState>

您唯一需要做的就是将 sslprotocols=tls12 添加到您的 Redis 连接字符串中。

示例:

<sessionState mode="Custom" timeout="120" customProvider="RedisSessionProvider">
  <providers>
    <add type = "Microsoft.Web.Redis.RedisSessionStateProvider"
         name = "RedisSessionProvider"
         connectionString = "MyRedisConnection"/>
  </providers>
</sessionState>

注意:确保您有 Microsoft.Web.Redis.RedisSessionStateProvider 版本 3.0.2 或更高版本。 一些参考: https://docs.microsoft.com/en-us/azure/azure-cache-for-redis/cache-remove-tls-10-11

https://github.com/Azure/aspnet-redis-providers/wiki/Configuration