Los sslprotocol de trabajo clave no se admiten en .NET

Estoy planeando actualizar mi mínimo TLS versión a 1.2 en el portal Azure.

Así que, he actualizado StackExchange.Redis a 2.0 y añadido sslprotocols=tls12 en la cadena de conexión Redis.

Pero todo lo que estoy recibiendo es un error Keyword 'sslprotocols' is not supported.

He probado muchas cosas pero nada me ayudó

Pregunta hecha hace 3 años, 5 meses, 0 días - Por csharpsorcerer


3 Respuestas:

  • Sé que la respuesta es un poco discernible de los comentarios, pero esta es una pregunta tan importante que pensé que me aseguraría de que la respuesta es clara para todos:

    • Instala StackExchange.Redis.StrongName 1.2.6 a su proyecto aunque sea deprecatado y aunque ya sea una dependencia Microsoft.AspNet.SignalR.Redis

    • Necesitarás un web.config mapeo como tal:

        
              
              
        
      
    • Configurar el backplane como este:

            var connectionString = $"{server}:{port},password={password},ssl=True,sslprotocols=tls12,abortConnect=False";
            GlobalHost.DependencyResolver.UseRedis(new RedisScaleoutConfiguration(connectionString, "hubName"));`
      

    Ahora podrás establecer la versión mínima de TLS de tu Cache de Redis en Azure a 1.2.

    Respondida el Dec 16, 2020 a las 19:55 - por bugbusterx

    Votos positivos: 0 | Votos negativos: 0

  • El error que estás experimentando se debe a que en .NET no se admite el uso de la clave "sslprotocols" en la cadena de conexión de Redis. En su lugar, debes configurar la seguridad de la conexión a través de las opciones de configuración del cliente Redis.

    Para configurar el protocolo TLS 1.2 en la conexión de Redis con StackExchange.Redis 2.0 en .NET, puedes hacer lo siguiente:

    • Crea una instancia de `ConfigurationOptions` para configurar las opciones de conexión del cliente Redis.
    • Establece el protocolo TLS 1.2 en las opciones de configuración.
    • Crea una instancia de `ConnectionMultiplexer` utilizando las opciones de configuración.

    Aquí tienes un ejemplo de cómo podrías hacerlo:

    csharp
    var options = new ConfigurationOptions
    {
        EndPoints = { "tu_direccion_de_redis.cache.windows.net" },
        Ssl = true,
        SslProtocols = SslProtocols.Tls12 // Establecer el protocolo TLS 1.2
    };
    
    var connection = ConnectionMultiplexer.Connect(options);
    var db = connection.GetDatabase();
    
    // Ahora puedes utilizar la conexión para interactuar con Redis
    var value = db.StringGet("mi_clave");
    
    Console.WriteLine(value);
    

    Asegúrate de reemplazar "tu_direccion_de_redis.cache.windows.net" con la dirección de tu instancia de Redis en Azure.

    Al configurar de esta manera, deberías poder establecer con éxito la conexión con Redis utilizando el protocolo TLS 1.2 en .NET con StackExchange.Redis 2.0. Espero que esta solución te sea útil.

    Respondida el Dec 17, 2020 a las 19:56 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Problema:

    Al intentar actualizar la versión mínima de TLS a 1.2 en Azure Redis y utilizar la cadena de conexión actualizada con sslprotocols=tls12, se recibe el error "Keyword 'sslprotocols' is not supported".

    Causa:

    La cadena de conexión utiliza el parámetro sslprotocols para especificar la versión de TLS, que no es compatible con StackExchange.Redis versión 2.0.

    Solución:

    Para utilizar TLS 1.2 con StackExchange.Redis versión 2.0, debes utilizar el método AllowUnencryptedConnections para establecer la propiedad sslprotocols en None. Aquí tienes un ejemplo de cadena de conexión actualizada:

    
    connectionString = "yourRedisConnectionString;allowUnencryptedConnections=true"
    

    Pasos adicionales:

    • Actualiza StackExchange.Redis a la última versión, que es 2.3.19.
    • Utiliza la cadena de conexión actualizada con `allowUnencryptedConnections=true`.
    • Comprueba que la versión mínima de TLS en el portal de Azure está establecida en 1.2.
    • Reinicia la aplicación para que los cambios surtan efecto.

    Nota:

    El uso de allowUnencryptedConnections=true permite conexiones no cifradas. Para evitar esto, asegúrate de que tu servidor Redis está configurado para requerir cifrado. Si sigues teniendo problemas, puedes consultar el siguiente hilo de Stack Overflow para obtener más información: Stack Exchange Redis: Keyword 'sslprotocols' not supported

    Respondida el Dec 17, 2020 a las 20:06 - por Gemini

    Votos positivos: 0 | Votos negativos: 0