Casos especiales para cifrar conexiones a SQL Server
Un equipo cliente debe confiar en el certificado de servidor para que el cliente pueda solicitar el cifrado Seguridad de la capa de transporte (TLS) y el certificado ya debe existir en el servidor. El escenario más común para el cifrado de SQL Server implica entornos en los que:
- Se fuerza el cifrado de todas las conexiones de cliente entrantes a SQL Server.
- Se usan certificados de una entidad de certificación comercial pública en la que Windows ya confía. El certificado raíz correspondiente para la entidad de certificación se instala en el almacén de certificados de entidades de certificación raíz de confianza en todos los equipos de la red.
En este escenario, no es necesario realizar pasos adicionales para el cifrado correcto después de configurar SQL Server para el cifrado según el procedimiento descrito en Configuración del motor de base de datos de SQL Server para el cifrado de conexiones. En este artículo se proporcionan los procedimientos para cifrar conexiones a SQL Server para escenarios menos comunes que no se tratan en Configuración del motor de base de datos de SQL Server para el cifrado de conexiones.
Nota:
Para obtener una lista completa de los participantes en el programa de certificados raíz de confianza de Microsoft, vea Lista de participantes: Programa de certificados raíz de confianza de Microsoft.
Uso de un certificado emitido por una entidad de certificación comercial pública cuando solo algunos clientes necesitan conexiones cifradas
Configure el certificado en SQL Server según el procedimiento documentado en Configuración de SQL Server para usar certificados.
Establezca la palabra clave de cifrado en las propiedades de conexión en Yes o True. Por ejemplo, si usa Microsoft ODBC Driver for SQL Server, la cadena de conexión debe especificar
Encrypt=yes;
.
Uso de un certificado emitido por una entidad de certificación interna o creado mediante New-SelfSignedCertificate o makecert
Escenario 1: Quiere cifrar todas las conexiones a SQL Server
Después de completar ambos procedimientos documentados en Paso 1: Configuración de SQL Server para usar certificados y Paso 2: Configuración de las opciones de cifrado en SQL Server que se indican en Configuración del motor de base de datos de SQL Server para el cifrado de conexiones, use una de las opciones siguientes para configurar la aplicación cliente para el cifrado.
Opción 1: configure las aplicaciones cliente para confiar en el certificado del servidor. Esta configuración hace que el cliente omita el paso que valida el certificado de servidor y continúe con el proceso de cifrado. Por ejemplo, si usa SQL Server Management Studio (SSMS) 20 y las versiones posteriores, puede seleccionar Confiar en el certificado del servidor en la página Inicio de sesión (o en la página Opciones en las versiones anteriores).
Opción 2: en cada cliente, agregue la entidad emisora del certificado al almacén de entidades raíz de confianza mediante los pasos siguientes:
Exporte el certificado desde un equipo que ejecuta SQL Server mediante el procedimiento documentado en Exportación del certificado de servidor.
Importe el certificado mediante el procedimiento que se documenta en Exportación e importación de certificados.
Escenario 2: Solo algunos clientes necesitan conexiones cifradas
Después de configurar el certificado para SQL Server como se documenta en Paso 1: Configuración de SQL Server para usar certificados en Configuración del motor de base de datos de SQL Server para el cifrado de conexiones, use una de las siguientes opciones para configurar la aplicación cliente para el cifrado:
Opción 1: configure las aplicaciones cliente para que confíen en el certificado de servidor y establezca la palabra clave de cifrado en las propiedades de conexión en Yes o True. Por ejemplo, si usa Microsoft ODBC Driver for SQL Server, la cadena de conexión debe especificar Encrypt=Yes;TrustServerCertificate=Yes;
.
Para obtener más información sobre los certificados de servidor y el cifrado, consulte Uso de TrustServerCertificate.
Opción 2: en cada cliente, agregue la entidad emisora del certificado al almacén de entidades raíz de confianza y especifique los parámetros de cifrado en Yes en la cadena de conexión:
Exporte el certificado desde un equipo que ejecuta SQL Server mediante el procedimiento documentado en Exportación del certificado.
Establezca la palabra clave de cifrado en las propiedades de conexión en Yes o True. Por ejemplo, si usa Microsoft OLE DB Driver for SQL Server, se debe especificar Use Encryption for Data = True; en la cadena de conexión.
Uso del certificado autofirmado creado automáticamente por SQL Server
Escenario 1: Quiere cifrar todas las conexiones entrantes a SQL Server
Habilite el cifrado en SQL Server mediante el procedimiento documentado en Paso 2: Configuración de las opciones de cifrado en SQL Server en Configuración del motor de base de datos de SQL Server para el cifrado de conexiones.
Configure las aplicaciones cliente para confiar en el certificado del servidor. Al confiar en el certificado de servidor, el cliente omite el paso que valida el certificado de servidor y continúa con el proceso de cifrado. Por ejemplo, si usa SQL Server Management Studio (SSMS) 20 y las versiones posteriores, puede seleccionar Confiar en el certificado del servidor en la página Inicio de sesión (o en la página Opciones en las versiones anteriores).
Escenario 2: Solo algunos clientes necesitan conexiones cifradas
Configure las aplicaciones cliente para que confíen en el certificado de servidor y establezca la palabra clave de cifrado en las propiedades de conexión en Yes o True. Por ejemplo, si usa Microsoft ODBC Driver for SQL Server, la cadena de conexión debe especificar Encrypt=Yes;TrustServerCertificate=Yes;
.
No se requiere ninguna configuración adicional en SQL Server para este escenario.
Advertencia
Las conexiones SSL cifradas mediante un certificado autofirmado no proporcionan una seguridad elevada porque la longitud de la clave en los certificados autofirmados es más corta que la clave de los certificados generados por la entidad de certificación. Son susceptibles de sufrir ataques de tipo "Man in the middle". No se debe confiar en SSL mediante certificados autofirmados en un entorno de producción o en servidores que están conectados a Internet.