Compatibilidad con TLS 1.2 para Microsoft SQL Server

Se aplica a: SQL Server
Número de KB original: 3135244

Introducción

En este artículo se proporciona información sobre las actualizaciones que Microsoft publica para habilitar la compatibilidad con TLS 1.2 para SQL Server 2017 en Windows, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 y SQL Server 2008 R2. En este artículo también se enumeran los proveedores de cliente admitidos. SQL Server 2016, SQL Server 2017 y SQL Server 2019 admiten TLS 1.2 sin necesidad de una actualización.

Se han notificado varias vulnerabilidades conocidas en Capa de sockets seguros (SSL) y versiones anteriores de Seguridad de la capa de transporte (TLS). Se recomienda actualizar a TLS 1.2 para una comunicación segura.

Importante

No se han notificado vulnerabilidades conocidas para la implementación de Microsoft TDS. Este es el protocolo de comunicación que se usa entre SQL Server clientes y el motor de base de datos de SQL Server. La implementación de Microsoft Schannel de TLS 1.0 (en relación con las vulnerabilidades conocidas que se han notificado a Microsoft a partir de la fecha de publicación de este artículo) se resume en la implementación Schannel de TLS 1.0 en la actualización de estado de seguridad de Windows: 24 de noviembre de 2015.

Cómo saber si necesita esta actualización

Use la tabla siguiente para determinar si la versión actual de SQL Server ya admite TLS 1.2 o si tiene que descargar una actualización para habilitar la compatibilidad con TLS 1.2. Use los vínculos de descarga de la tabla para obtener las actualizaciones del servidor que son aplicables a su entorno.

Nota:

Las compilaciones posteriores a las enumeradas en esta tabla también admiten TLS 1.2.

SQL Server versión Compilación o versión inicial que admitía TLS 1.2 Actualizaciones actuales con compatibilidad con TLS 1.2 Información adicional
SQL Server 2014 SP1 CU 12.0.4439.1

SP1 CU5
KB3130926: actualización acumulativa 5 para SQL Server 2014 SP1

Nota: KB3130926 ahora instalará la última CU producida para 2014 SP1 (CU13 - KB4019099), que incluye compatibilidad con TLS 1.2 y todas las revisiones publicadas hasta la fecha. Si es necesario, CU5 está disponible en el catálogo de Windows Update.

Nota: La compatibilidad con TLS 1.2 también está disponible en 2014 SP2 y 2014 SP3.
KB3052404 : CORRECCIÓN: no se puede usar la versión 1.2 del protocolo de seguridad de la capa de transporte para conectarse a un servidor que ejecuta SQL Server 2014 o SQL Server 2012
GDR de SQL Server 2014 SP1 12.0.4219.0

Actualización de TLS 1.2 de GDR de SP1
La compatibilidad de TLS 1.2 con GDR sp1 de 2014 está disponible en la última actualización acumulativa de GDR : KB4019091.

Nota: La compatibilidad con TLS 1.2 también está disponible en 2014 SP2 y 2014 SP3.
SQL Server 2014 RTM CU 12.0.2564.0

RTM CU12
KB3130923: actualización acumulativa 12 para SQL Server 2014

Nota: KB3130923 ahora instalará la última CU publicada para 2014 RTM (CU14 - KB3158271 ), que incluye compatibilidad con TLS 1.2 y todas las revisiones publicadas hasta la fecha. Si es necesario, CU12 está disponible en Windows Update Catálogo.

Nota: La compatibilidad con TLS 1.2 también está disponible en 2014 SP2 y 2014 SP3.
KB3052404 : CORRECCIÓN: no se puede usar la versión 1.2 del protocolo de seguridad de la capa de transporte para conectarse a un servidor que ejecuta SQL Server 2014 o SQL Server 2012
GDR de rtm de SQL Server 2014 12.0.2271.0

Actualización de TLS 1.2 de RTM GDR
La compatibilidad con TLS para SQL 2014 RTM solo está disponible actualmente mediante la instalación de 2014 SP2 y 2014 SP3.
GDR de SQL Server 2012 SP3 11.0.6216.27

SP3 GDR TLS 1.2 Update
Descripción de la actualización de seguridad de SQL Server 2012 SP3 GDR: 16 de enero de 2018

Nota: La compatibilidad con TLS 1.2 también está disponible en 2012 SP4.
SQL Server 2012 SP3 CU 11.0.6518.0

SP1 CU3
KB3123299: actualización acumulativa 1 para SQL Server 2012 SP3

Nota: KB3123299 ahora instalará la última CU publicada para 2012 SP3 (CU10 - KB4025925, que incluye compatibilidad con TLS 1.2 y todas las revisiones publicadas hasta la fecha). Si es necesario, CU1 está disponible en Windows Update Catalog.

Nota: La compatibilidad con TLS 1.2 también está disponible en 2012 SP4.
KB3052404 : CORRECCIÓN: no se puede usar la versión 1.2 del protocolo de seguridad de la capa de transporte para conectarse a un servidor que ejecuta SQL Server 2014 o SQL Server 2012
GDR de SQL Server 2012 SP2 11.0.5352.0

Actualización de TLS 1.2 de SP2 GDR
La compatibilidad con TLS 1.2 para GDR sp2 de 2012 está disponible en la última actualización acumulativa de GDR : KB3194719.

La compatibilidad con TLS 1.2 también está disponible en 2012 SP3 y 2012 SP4.
SQL Server 2012 SP2 CU 11.0.5644.2

SP2 CU10
KB3120313: actualización acumulativa 10 para SQL Server 2012 SP2.

Nota: KB3120313 ahora instalará la última CU publicada para 2012 SP2 (CU16 - KB3205054, que incluye compatibilidad con TLS 1.2 y todas las revisiones publicadas hasta la fecha). Si es necesario, CU1 está disponible en Windows Update Catalog. Nota: La compatibilidad con TLS 1.2 también está disponible en 2012 SP3 y 2012 SP4.
KB3052404 : CORRECCIÓN: no se puede usar la versión 1.2 del protocolo de seguridad de la capa de transporte para conectarse a un servidor que ejecuta SQL Server 2014 o SQL Server 2012
SQL Server 2008 R2 SP3 (solo x86/x64) 10.50.6542.0

Actualización de TLS 1.2 de SP2
La compatibilidad con TLS 1.2 está disponible en la actualización acumulativa más reciente para SQL Server 2008 R2 SP3- KB4057113.
SQL Server 2008 R2 SP2 GDR (solo IA-64) 10.50.4047.0

Actualización de TLS 1.2 de SP2
SQL Server 2008 R2 SP2 GDR (IA-64) TLS 1.2 Novedades
SQL Server 2008 R2 SP2 CU (solo IA-64) 10.50.4344.0

Actualización de TLS 1.2 de SP2
SQL Server 2008 R2 SP2 GDR (IA-64) TLS 1.2 Novedades
SQL Server 2008 SP4 (solo x86/x64) 10.0.6547.0

Actualización de TLS 1.2 de SP4
La compatibilidad con TLS 1.2 está disponible en la última actualización acumulativa para SQL Server 2008 SP4: solo KB4057114(x86/x64).
SQL Server 2008 SP3 GDR (solo IA-64) 10.0.5545.0

Actualización de TLS 1.2 de SP3
SQL Server 2008 SP3 GDR (IA-64) TLS 1.2 Novedades
SQL Server 2008 SP3 CU (solo IA-64) 10.0.5896.0

Actualización de TLS 1.2 de SP3
SQL Server 2008 SP3 CU (IA-64) TLS 1.2 Novedades

Descargas de componentes de cliente

Use la tabla siguiente para descargar los componentes de cliente y las actualizaciones de controladores aplicables a su entorno.

Componente o controlador de cliente Novedades con compatibilidad con TLS 1.2
SQL Server Native Client 10.0 para SQL Server 2008/2008 R2 (x86/x64/IA64) Microsoft SQL Server 2008 y SQL Server 2008 R2 Native Client
SQL Server Native Client 11.0 para SQL Server 2012/2014 (x86/x64) Microsoft SQL Server 2012 Native Client: QFE
Componentes de cliente de MDAC (Sqlsrv32.dll y Sqloledb.dll) Actualización de la pila de mantenimiento para Windows 10, versión 1809: 10 de noviembre de 2020

Correcciones adicionales necesarias para que SQL Server use TLS 1.2

Tiene que instalar los siguientes paquetes acumulativos de revisiones de .NET para habilitar SQL Server características como Correo electrónico de base de datos y determinados componentes de SSIS que usan puntos de conexión de .NET que requieren compatibilidad con TLS 1.2, como la tarea Servicio web para usar TLS 1.2.

Sistema operativo Versión .NET Framework Novedades con compatibilidad con TLS 1.2
Windows 7 Service Pack 1, Windows 2008 R2 Service Pack 1 3.5.1 Compatibilidad con TLS v1.2 incluida en la versión 3.5.1 de .NET Framework
Windows 8 RTM, Windows 2012 RTM 3.5 Compatibilidad con TLS v1.2 incluida en la versión 3.5 de .NET Framework
Windows 8.1, Windows 2012 R2 SP1 3.5 SP1 Compatibilidad con TLS v1.2 incluida en la versión 3.5 SP1 de .NET Framework en Windows 8.1 y Windows Server 2012 R2

Preguntas más frecuentes

  • ¿Se admite TLS 1.1 en SQL Server 2016 y versiones posteriores?

    Sí. SQL Server 2016, SQL Server 2017 en Windows y SQL Server 2019 en versiones de Windows se incluyen con compatibilidad con TLS 1.0 a TLS 1.2. Tiene que deshabilitar TLS 1.0 y 1.1 si desea usar solo TLS 1.2 para la comunicación cliente-servidor.

  • ¿SQL Server 2019 permite conexiones mediante TLS 1.0 o 1.1 o solo 1.2?

    SQL Server 2019 tiene el mismo nivel de compatibilidad que SQL Server 2016 y SQL Server 2017, y SQL Server 2019 admite versiones anteriores de TLS. SQL Server RTM 2019 se incluye con compatibilidad con TLS 1.2 y no se requiere ninguna otra actualización o corrección para habilitar la compatibilidad con TLS 1.2.

  • ¿El TDS se ve afectado por vulnerabilidades conocidas?

    No se han notificado vulnerabilidades conocidas para la implementación de Microsoft TDS. Dado que varias organizaciones de cumplimiento de estándares exigen el uso de TLS 1.2 para canales de comunicación cifrados, Microsoft publica compatibilidad con TLS 1.2 para la base de instalación de SQL Server generalizada.

  • ¿Cómo se distribuirán las actualizaciones de TLS 1.2 a los clientes?

    En este artículo se proporcionan vínculos de descarga para las actualizaciones de cliente y servidor adecuadas que admiten TLS 1.2.

  • ¿TLS 1.2 admite SQL Server 2005?

    La compatibilidad con TLS 1.2 solo se ofrece para SQL Server 2008 y versiones posteriores.

  • ¿Se ven afectados los clientes que no usan SSL/TLS si SSL 3.0 y TLS 1.0 están deshabilitados en el servidor?

    Sí. SQL Server cifra el nombre de usuario y la contraseña durante el inicio de sesión, incluso si no se usa un canal de comunicación seguro. Esta actualización es necesaria para todas las instancias de SQL Server que no usan comunicaciones seguras y que tienen todos los demás protocolos, excepto TLS 1.2 deshabilitado en el servidor.

  • ¿Qué versiones de Windows Server admiten TLS 1.2?

    Windows Server 2008 R2 y versiones posteriores admiten TLS 1.2.

  • ¿Cuál es la configuración correcta del Registro para habilitar TLS 1.2 para SQL Server comunicación?

    La configuración correcta del Registro es la siguiente:

    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

    Esta configuración es necesaria para los equipos de servidor y cliente. La DisabledByDefault configuración y Enabled deben crearse en clientes de Windows 7 y servidores de Windows Server 2008 R2. En Windows 8 y versiones posteriores de los sistemas operativos cliente o Windows Server 2012 servidor y versiones posteriores de los sistemas operativos del servidor, TLS 1.2 ya debe estar habilitado. Si va a implementar una directiva de implementación para el Registro de Windows que debe ser independiente de la versión del sistema operativo, se recomienda agregar las claves del Registro mencionadas a la directiva. Además, si usa Correo electrónico de base de datos en el SQL Server, también debe establecer las siguientes claves del Registro de .NET:

    • [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319] "SystemDefaultTlsVersions"=dword:00000001 "SchUseStrongCrypto"=dword:00000001

Problemas conocidos

  • Problema 1

    SQL Server Management Studio (SSMS), el servidor de informes y el Administrador de informes no se conectan al motor de base de datos después de aplicar la corrección para SQL Server 2008, 2008 R2, 2012 o 2014. El servidor de informes y el Administrador de informes producen un error y devuelven el siguiente mensaje de error:

    El servidor de informes no puede abrir una conexión a la base de datos del servidor de informes. Se requiere una conexión a la base de datos para todas las solicitudes y el procesamiento. (rsReportServerDatabaseUnavailable)

    Este problema se produce porque SSMS, el Administrador de informes y Reporting Services Configuration Manager usan ADO.NET y ADO.NET compatibilidad con TLS 1.2 solo está disponible en .NET Framework 4.6. En versiones anteriores de .NET Framework, debe aplicar una actualización de Windows para que ADO.NET pueda admitir comunicaciones TLS 1.2 para el cliente. Las actualizaciones de Windows que habilitan la compatibilidad con TLS 1.2 en versiones anteriores de .NET Framework se enumeran en la tabla de la sección Cómo saber si necesita esta actualización .

  • Problema 2

    Reporting Services Configuration Manager notifica el siguiente mensaje de error incluso después de que los proveedores de cliente se hayan actualizado a una versión compatible con TLS 1.2:

    No se pudo conectar al servidor: se estableció correctamente una conexión con el servidor, pero se produjo un error durante el protocolo de enlace anterior al inicio de sesión.

    Captura de pantalla de un error de conexión de prueba después de que los proveedores de cliente se hayan actualizado a una versión compatible con TLS 1.2.

    Para resolver este problema, cree manualmente la siguiente clave del Registro en el sistema que hospeda el Reporting Services Configuration Manager:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client: "Enabled"=dword:00000001

  • Problema 3

    Se produce un error en la comunicación de punto de conexión cifrada que usa TLS 1.2 cuando se usan comunicaciones cifradas para grupos de disponibilidad, creación de reflejo de la base de datos o Service Broker en SQL Server. Se registra un mensaje de error similar al siguiente en el registro de errores de SQL:

    Connection handshake failed. An OS call failed: (80090331) 0x80090331(The client and server cannot communicate, because they do not possess a common algorithm.). State 56.
    

    Para obtener más información sobre este problema, vea FIX: La comunicación de punto de conexión cifrada con TLS 1.2 produce un error al usar SQL Server.

  • Problema 4

    Se producen varios errores al intentar instalar SQL Server 2012 o SQL Server 2014 en un servidor que tiene TLS 1.2 habilitado.

    Para obtener más información, vea FIX: Error al instalar SQL Server 2012 o SQL Server 2014 en un servidor que tenga TLS 1.2 habilitado.

  • Problema 5

    Una conexión cifrada con la creación de reflejo de la base de datos o los grupos de disponibilidad no funciona cuando se usa un certificado después de deshabilitar todos los demás protocolos distintos de TLS 1.2. En el registro de errores de SQL Server se registra un mensaje de error similar al siguiente:

    Una conexión cifrada con la creación de reflejo de la base de datos o los grupos de disponibilidad no funciona cuando se usa un certificado después de deshabilitar todos los demás protocolos distintos de TLS 1.2. Es posible que observe uno de los siguientes síntomas:

    • Síntoma 1:

      En el registro de errores de SQL Server se registra un mensaje de error similar al siguiente:

      Connection handshake failed. An OS call failed: (80090331) 0x80090331(The client and server cannot communicate, because they do not possess a common algorithm.). State 58.'
      
    • Síntoma 2:

      Se registra un mensaje de error similar al siguiente en el registro de eventos de Windows:

      Log Name:      System
      Source:        Schannel
      Date:          <Date Time>
      Event ID:      36888
      Task Category: None
      Level:         Error
      Keywords:     
      User:          SYSTEM
      Computer:      ------------
      Description:
      A fatal alert was generated and sent to the remote endpoint. This may result in termination of the connection. The TLS protocol defined fatal error code is 40. The Windows SChannel error state is 1205.
      
      Log Name:      System
      Source:        Schannel
      Date:          <Date Time>
      Event ID:      36874
      Task Category: None
      Level:         Error
      Keywords:     
      User:          SYSTEM
      Computer:      -----------
      Description:
      An TLS 1.2 connection request was received from a remote client application, but none of the cipher suites supported by the client application are supported by the server. The SSL connection request has failed.
      

      Este problema se produce porque los grupos de disponibilidad y la creación de reflejo de la base de datos requieren un certificado que no use algoritmos hash de longitud fija, como MD5. Los algoritmos hash de longitud fija no se admiten en TLS 1.2.

    Para obtener más información, vea FIX: Communication using MD5 hash algorithm fails if SQL Server uses TLS 1.2.

  • Problema 6

    Las siguientes versiones del motor de base de datos SQL Server se ven afectadas por el problema intermitente de terminación del servicio que se notifica en el artículo de Knowledge Base 3146034. Para que los clientes se protejan de la incidencia de terminación del servicio, se recomienda que instalen las actualizaciones de TLS 1.2 para SQL Server que se mencionan en este artículo si su versión de SQL Server aparece en la tabla siguiente:

    SQL Server versión Versión afectada
    SQL Server 2008 R2 SP3 (x86 y x64) 10.50.6537.0
    SQL Server 2008 R2 SP2 GDR (solo IA-64) 10.50.4046.0
    SQL Server 2008 R2 SP2 (solo IA-64) 10.50.4343.0
    SQL Server 2008 SP4 (x86 y x64) 10.0.6543.0
    SQL Server 2008 SP3 GDR (solo IA-64) 10.0.5544.0
    SQL Server 2008 SP3 (solo IA-64) 10.0.5894.0
  • Problema 7

    Correo electrónico de base de datos no funciona con TLS 1.2. Correo electrónico de base de datos se produce el siguiente error:

    Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException: no se pudo leer la información de configuración de correo de la base de datos. No se puede iniciar la sesión de correo.

    Para obtener más información, consulte Correcciones adicionales necesarias para que SQL Server use TLS 1.

Errores comunes que puede experimentar cuando faltan actualizaciones de TLS 1.2 en el cliente o servidor

Problema 1

System Center Configuration Manager (SCCM) no se puede conectar a SQL Server después de habilitar el protocolo TLS 1.2 en SQL Server. En esta situación, aparece el siguiente mensaje de error:

Proveedor de TCP: el host remoto cerró forzadamente una conexión existente

Este problema puede producirse cuando SCCM usa un controlador de SQL Server Native Client que no tiene una corrección. Para resolver este problema, descargue e instale la corrección de cliente que aparece en la sección Descargas de componentes de cliente . Por ejemplo, Microsoft® SQL Server ® 2012 Native Client - QFE.

Puede averiguar qué SCCM de controladores usa para conectarse a SQL Server mediante la visualización del registro de SCCM, como se muestra en el ejemplo siguiente:

[SQL Server Native Client 11.0]TCP Provider: An existing connection was forcibly closed by the remote host.~~  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** [08001][10054][Microsoft][SQL Server Native Client 11.0]Client unable to establish connection  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** Failed to connect to the SQL Server, connection type: SMS ACCESS.  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 INFO: SQL Connection failed. Connection: SMS ACCESS, Type: Secure  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>Native Client 11.0]TCP Provider: An existing connection was forcibly closed by the remote host.~~  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** [08001][10054][Microsoft][SQL Server Native Client 11.0]Client unable to establish connection  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** Failed to connect to the SQL Server, connection type: SMS ACCESS.  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 INFO: SQL Connection failed. Connection: SMS ACCESS, Type: Secure  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>