Conexión a SQL Server mediante cifrado strict

Se aplica a: SQL Server 2022 (16.x) y versiones posteriores

El cifrado estricto de conexiones impone buenas prácticas de seguridad y hace que sea posible que los dispositivos de red estándar administren el tráfico de SQL Server. El cifrado estricto usa el flujo de datos tabulares (TDS) 8.0, que encapsula la sesión de TDS en Seguridad de la capa de transporte (TLS) para el cifrado de un extremo a otro.

En este artículo, aprenderá a conectarse a SQL Server 2022 (16.x) y versiones posteriores mediante el tipo de conexión strict.

Requisito previo

Conexión a SQL Server mediante una aplicación .NET

Para obtener información sobre cómo crear la cadena y conectarse a SQL Server mediante el tipo de cifrado strict, vea Sintaxis de cadena de conexión para saber cómo crear correctamente la cadena de conexión. Para obtener más información sobre las nuevas propiedades de cadena de conexión, vea Cambios adicionales en las propiedades de cifrado de cadena de conexión.

Conexión mediante un DSN ODBC

Una conexión se puede probar con el tipo de cifrado de conexión Strict mediante un DSN ODBC para SQL Server.

  1. Busque la aplicación Orígenes de datos ODBC en Windows.

    Captura de pantalla de la aplicación de orígenes de datos O D B C.

  2. Asegúrese de que tiene el controlador ODBC más reciente; para ello, busque en la pestaña Controladores del Administrador de orígenes de datos ODBC.

    Captura de pantalla de los drivers disponibles.

  3. En la pestaña DSN del sistema, seleccione Agregar para crear un DSN. Tras ello, seleccione ODBC Driver 18 for SQL Server. Seleccione Finalizar. Usaremos esto para probar nuestra conexión.

  4. En la ventana Crear un nuevo origen de datos para SQL Server, proporcione un nombre para este origen de datos y agregue el nombre del servidor de SQL Server 2022 (16.x) a Servidor. Seleccione Siguiente.

    Captura de pantalla de la creación de un origen de datos mediante el controlador de O D B C.

  5. Use todos los valores predeterminados de toda la configuración hasta llegar a la pantalla donde aparezca Cifrado de la conexión. Seleccione Estricto. Si el nombre del servidor especificado difiere del que consta en el certificado, o si se usa la dirección IP en su lugar, establezca HostName in certificate (Nombre de host de certificado) en el nombre que consta en el certificado. Seleccione Finalizar.

    Captura de pantalla que muestra el tipo de cifrado estricto.

  6. Cuando se abra el cuadro de diálogo Configuración de ODBC de Microsoft SQL Server, seleccione el botón Probar origen de datos... para probar la conexión. Esto debería aplicar la conexión strict a SQL Server en esta prueba.

La conexión a SQL Server mediante cifrado strict también se puede probar mediante OLE DB Driver con UDL (vínculo de datos universal).

  1. Para crear un archivo UDL para probar la conexión, haga clic con el botón derecho en el escritorio y seleccione Nuevo>Documento de texto. Debe cambiar la extensión de txt a udl. Puede dar al archivo el nombre que quiera.

    Nota:

    Debe poder ver el nombre de la extensión para cambiar la extensión de txt a udl. Si no puede ver la extensión, puede activar la visualización de las extensiones abriendo el Explorador de archivos>Ver>Mostrar>Extensiones de nombre de archivo.

  2. Abra el archivo UDL que ha creado y vaya a la pestaña Proveedor para seleccionar Microsoft OLE DB Driver 19 for SQL Server. Seleccione Siguiente>>.

    Captura de pantalla de la pantalla del proveedor de U D L.

  3. En la pestaña Conexión, escriba el nombre del servidor de SQL Server y seleccione el método de autenticación que use para iniciar sesión en SQL Server.

    Captura de la pantalla de conexión de U D L.

  4. En la pestaña Opciones avanzadas, seleccione Estricto en Cifrado de la conexión. Si el nombre del servidor especificado difiere del que consta en el certificado, o si se usa la dirección IP en su lugar, establezca HostName in certificate (Nombre de host de certificado) en el nombre que consta en el certificado. Vuelva a la pestaña Conexión cuando haya terminado.

    Captura de pantalla de la pantalla avanzada de U D L.

  5. Seleccione Probar conexión para probar la conexión con el cifrado de conexión strict.

    Captura de pantalla de la pantalla de conexión U D L y prueba de la conexión.

Conexión con SSMS

A partir de la versión 20, puede aplicar el cifrado estricto en SQL Server Management Studio (SSMS) en la pestaña Inicios de sesión del cuadro de diálogo Conectar al servidor :

Captura de pantalla del cuadro de diálogo Conectar con el servidor en SQL Server Management Studio.

Conexión a un grupo de disponibilidad AlwaysOn

A partir de SQL Server 2025 (17.x), puede cifrar la comunicación entre el clúster de conmutación por error de Windows Server y una réplica de grupo de disponibilidad Always On usando el tipo de cifrado de conexión Strict o Mandatory. El grupo de disponibilidad solo puede aplicar el cifrado si se basa en un clúster de conmutación por error de Windows Server. Otros tipos de grupos de disponibilidad no admiten el cifrado estricto.

Nota:

El cifrado de los extremos de creación de reflejo de la base de datos se configura por separado y no se admite TLS. Para obtener más información, consulte Seguridad del transporte en grupos de disponibilidad y duplicación de la base de datos.

Los pasos varían dependiendo de si ya existe su disponibilidad o no.

Para forzar el cifrado estricto a un nuevo grupo de disponibilidad, siga estos pasos:

  1. Si aún no lo ha hecho, importe el certificado TLS a todas las réplicas del grupo de disponibilidad, tal como se definen en los requisitos de certificado. Reinicie cada instancia de SQL Server después de importar el certificado.
  2. Pruebe las conexiones a cada réplica de SQL Server mediante uno de los métodos mencionados en este artículo que aplica el cifrado.
  3. CREATE AVAILABILITY GROUP con la propiedad Encrypt establecida en Strict en la cláusula CLUSTER_CONNECTION_OPTIONS para el grupo de disponibilidad. Esto garantiza que todas las conexiones al grupo de disponibilidad usen el tipo de cifrado especificado.
  4. Si el grupo de disponibilidad está actualmente en línea, conmute por error el grupo de disponibilidad a una réplica secundaria para aplicar la nueva configuración de cifrado al grupo de disponibilidad. Si el grupo de disponibilidad no se puede conectar, podría ser que ClusterConnectionOptions no se ha ajustado correctamente. Compruebe el cluster.log en busca de errores ODBC relacionados con el clúster que no puede conectarse a la réplica de SQL Server. Opcionalmente, puede restaurar el grupo de disponibilidad a la réplica principal original, después de que la nueva réplica secundaria esté en línea y conectada al grupo de disponibilidad.
  5. (Opcional) Puede aplicar aún más el cifrado estableciendo la opción Forzar cifrado estricto en Yes en las propiedades del Administrador de configuración de SQL Server para el protocolo de conexión para cada réplica. Esta configuración garantiza que todas las conexiones a las réplicas del grupo de disponibilidad usen cifrado estricto. Reinicie cada réplica de SQL Server después de cambiar esta configuración.

Conexión a una instancia de clúster de conmutación por error

A partir de SQL Server 2025 (17.x), puede cifrar la comunicación entre el clúster de conmutación por error de Windows Server y una instancia de clúster de conmutación por error Always On utilizando el tipo de cifrado de conexión Strict o Mandatory. Para ello, siga estos pasos:

  1. Si aún no lo ha hecho, importe el certificado TLS a cada nodo del clúster de conmutación por error, tal como se define en los requisitos de certificado. Reinicie la instancia de SQL Server después de importar el certificado.
  2. Pruebe las conexiones a la instancia del clúster de conmutación por error mediante uno de los métodos mencionados en este artículo que aplica el cifrado.
  3. ALTER SERVER CONFIGURATION con la cláusula CLUSTER_CONNECTION_OPTIONS para establecer la propiedad Encrypt en Mandatory o Strict. Esto garantiza que todas las conexiones a la instancia del clúster de conmutación por error usen el tipo de cifrado especificado.
  4. Conmute la instancia a un nodo secundario para aplicar la nueva configuración de cifrado a la instancia del clúster de conmutación por error. Si la instancia del clúster de conmutación por error no puede ponerse en línea, podría deberse a que ClusterConnectionOptions no está configurado correctamente. Compruebe el cluster.log para ver si hay errores de ODBC relacionados con el clúster que no se pueden conectar a la instancia de SQL Server. Opcionalmente, puede revertir la instancia al nodo principal original después de que el nuevo nodo secundario esté en línea y conectado a la instancia del clúster de conmutación por error.
  5. (Opcional) Puede aplicar aún más el cifrado estableciendo la opción Forzar cifrado estricto en Yes en las propiedades del Administrador de configuración de SQL Server para el protocolo de conexión para cada nodo del clúster. Esta configuración garantiza que todas las conexiones a la instancia del clúster de conmutación por error usen cifrado estricto. Realice este cambio en el nodo secundario, produzca el traspaso de la instancia a él y, a continuación, realice el cambio en el nodo principal.

cifrado de la conexión de Agente SQL Server

A partir de SQL Server 2025 (17.x), Agente SQL Server usa Microsoft controlador ODBC 18 para SQL Server, que admite TDS 8.0 y TLS 1.3. Agente SQL Server ajusta automáticamente su cifrado de conexión para que coincida con la configuración de la instancia de SQL Server.

Cómo Agente SQL Server determina el cifrado

Cuando se inicia Agente SQL Server, consulta las siguientes claves del Registro en el equipo local para determinar el nivel de cifrado configurado para SQL Server:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\ForceEncryption
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\ForceStrict
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\SubjectAlternativeName(novedad en SQL Server 2025 (17.x))

En función de estos valores, Agente SQL Server selecciona su modo de conexión:

  • Si se habilita Force Strict Encryption, Agente SQL Server se conecta mediante strict (TDS 8.0).
  • Si Force Encryption está habilitado, Agente SQL Server se conecta mediante mandatory (TDS 7.x).
  • Si ninguno está habilitado, Agente SQL Server se conecta mediante optional (TDS 7.x).

Los pasos del trabajo de T-SQL local heredan la misma configuración de cifrado que el servicio Agente SQL Server. Si Agente SQL Server se conecta con strict, los trabajos de T-SQL ejecutados localmente en el servidor usan la misma opción.

Importante

TLS 1.3 solo funciona con cifrado estricto. Si la instancia de SQL Server solo tiene TLS 1.3 habilitado a nivel del sistema operativo, pero solo está establecido Forzar cifrado (no Forzar cifrado estricto), Agente SQL Server no puede iniciarse porque los modos mandatory y optional requieren TDS 7.x, que no es compatible con TLS 1.3.

Matriz de configuración de TLS y cifrado

Versión de TLS habilitada Ajuste de configuración resultado de Agente SQL Server Notes
Solo TLS 1.3 Forzar cifrado estricto Se conecta correctamente TDS 8.0 usa cifrado estricto
Solo para TLS 1.3 Forzar el cifrado No se puede conectar TLS 1.3 requiere estrictamente
Solo TLS 1.3 Ninguno No se puede conectar TLS 1.3 requiere cifrado estricto
Solo para TLS 1.2 Forzar cifrado estricto Se conecta correctamente TDS 8.0 puede usar TLS 1.2
Solo se admite TLS 1.2 Forzar el cifrado Se conecta correctamente TDS 7.x con carácter obligatorio
Solo se admite TLS 1.2 Ninguno Se conecta correctamente TDS 7.x con opción
TLS 1.2 y TLS 1.3 Forzar cifrado estricto Se conecta correctamente TDS 8.0 usa cifrado estricto
TLS 1.2 y TLS 1.3 Forzar el cifrado Se conecta correctamente TDS 7.x con carácter obligatorio
TLS 1.2 y TLS 1.3 Ninguno Se conecta correctamente TDS 7.x con opción

Comprobación del cifrado negociado de Agente SQL Server

Después de que Agente SQL Server se conecte, ejecute la consulta siguiente para confirmar su modo de cifrado:

SELECT s.session_id, c.encrypt_option, s.program_name, s.client_interface_name, s.nt_user_name
FROM sys.dm_exec_connections AS c
INNER JOIN sys.dm_exec_sessions AS s
    ON c.session_id = s.session_id
WHERE s.program_name LIKE 'SQLAgent%';

La columna encrypt_option devuelve TRUE cuando Agente SQL Server se conecta mediante cifrado.

Para obtener información general sobre Agente SQL Server en sí, consulte Agente SQL Server.

Forzar el cifrado estricto con el Administrador de configuración de SQL Server

Puede aplicar el cifrado estricto mediante el Administrador de configuración de SQL Server a partir de SQL Server 2022 (16.x). Para ello, siga estos pasos:

  1. Abra el Administrador de configuración de SQL Server.

  2. En el panel izquierdo, expanda Configuración de red de SQL Server y seleccione Protocolos para [NombreDeInstancia].

  3. Haga clic con el botón derecho en TCP/IP y seleccione Propiedades.

  4. En el cuadro de diálogo Propiedades de TCP/IP , vaya a la pestaña Marcas y seleccione para la opción Forzar cifrado estricto :

    Captura de pantalla de la opción Forzar cifrado estricto en el Administrador de configuración de SQL Server.

  5. Reinicie la instancia de SQL Server durante una ventana de mantenimiento para aplicar los cambios.

Comentarios

Si ve SSL certificate validation failed, valide lo siguiente:

  • El certificado de servidor es válido en el equipo que está usando para realizar las pruebas.
  • Se cumple al menos una de las siguientes condiciones:
    • El Proveedor de SQL Server coincide con el nombre de la CA o con uno de los nombres DNS en el certificado.
    • La propiedad de cadena de conexión HostNameInCertificate coincide con el nombre de entidad de certificación o con uno de los nombres DNS en el certificado.