Actualización de aplicaciones para la conexión a las instancias de base de datos de Microsoft SQL Server con los nuevos certificados SSL/TLS - Amazon Relational Database Service

Actualización de aplicaciones para la conexión a las instancias de base de datos de Microsoft SQL Server con los nuevos certificados SSL/TLS

El 13 de enero de 2023, Amazon RDS publicó nuevos certificados de entidades de certificación (CA) para la conexión a sus instancias de base de datos de RDS mediante la capa de sockets seguros o seguridad de la capa de transporte (SSL/TLS). Después, puede encontrar la información sobre la actualización de sus aplicaciones para utilizar los nuevos certificados.

Este tema puede ayudarle a determinar si las aplicaciones de cualquier cliente utilizan SSL/TLS para conectarse a sus instancias de base de datos. Si lo hacen, puede comprobar de manera adicional si esas aplicaciones precisan una verificación de certificados para conectarse.

nota

Algunas aplicaciones están configuradas para conectarse a las instancias de base de datos de SQL Server solo si pueden verificar con éxito el certificado del servidor.

Para esas aplicaciones, debe actualizar los almacenes de confianza de la aplicación de su cliente para incluir los nuevos certificados de CA.

Después actualizar sus certificados de CA en los almacenes de confianza de la aplicación de su cliente, puede rotar los certificados en sus instancias de base de datos. Recomendamos encarecidamente probar estos procedimientos en un entorno de desarrollo o ensayo antes de implementarlos en sus entornos de producción.

Para obtener más información acerca de la rotación de certificados, consulte Rotar certificados SSL/TLS. Para obtener más información acerca de cómo descargar certificados, consulte Uso de SSL/TLS para cifrar una conexión a una instancia o clúster de base de datos. Para obtener información sobre el uso de SSL/TLS con las instancias de base de datos de Microsoft SQL Server, consulte Uso de SSL con una instancia de base de datos de Microsoft SQL Server.

Determinación de si alguna aplicación se conecta a su instancia de base de datos de Microsoft SQL Server mediante SSL

Compruebe la configuración de la instancia de base de datos para obtener el valor del parámetro de rds.force_ssl. De forma predeterminada, el parámetro rds.force_ssl tiene el valor 0 (desactivado). Si el parámetro rds.force_ssl está configurado como 1 (activado), se precisa que los clientes utilicen SSL/TLS para las conexiones. Para obtener más información acerca de los grupos de parámetros, consulte Grupos de parámetros para Amazon RDS.

Ejecute la siguiente consulta para tener acceso a la opción de cifrado actual para todas las conexiones abiertas de la instancia de base de datos. La columna ENCRYPT_OPTION devuelve TRUE si la conexión está cifrada.

select SESSION_ID, ENCRYPT_OPTION, NET_TRANSPORT, AUTH_SCHEME from SYS.DM_EXEC_CONNECTIONS

Esta consulta muestra solo las conexiones actuales. No muestra si las aplicaciones que se han conectado y desconectado anteriormente han utilizado SSL.

Determinación de si un cliente necesita una verificación de certificados para conectarse

Puede comprobar si diferentes tipos de clientes precisan la verificación de certificados para conectarse.

nota

Si utiliza conectores distintos a los enumerados, consulte la documentación del conector específico para obtener información sobre cómo aplica las conexiones cifradas. Para obtener más información, consulte Módulos de conexión para las bases de datos de Microsoft SQL en la documentación de Microsoft SQL Server.

SQL Server Management Studio

Compruebe si el cifrado se aplica para las conexiones de SQL Server Management Studio:

  1. Lance SQL Server Management Studio.

  2. En Connect to server (Conectar al servidor), introduzca la información del servidor, el nombre de usuario de inicio de sesión y la contraseña.

  3. Elija Options.

  4. Compruebe si Encrypt connection (Cifrar conexión) se ha seleccionado en la página de conexión.

Para obtener más información acerca de SQL Server Management Studio, consulte SQL Server Management Studio.

Sqlcmd

En el siguiente ejemplo con el cliente de sqlcmd se muestra cómo comprobar la conexión a SQL Server de un script para determinar si las conexiones realizadas correctamente precisan un certificado válido. Para obtener más información, consulte Conexión con sqlcmd en la documentación de Microsoft SQL Server.

Al utilizar sqlcmd, una conexión SSL precisa una verificación frente al certificado del servidor si utiliza el argumento del comando -N para cifrar conexiones, como en el siguiente ejemplo.

$ sqlcmd -N -S dbinstance.rds.amazon.com -d ExampleDB
nota

Si se invoca sqlcmd con la opción -C, confía en el certificado del servidor, incluso si no coincide con el almacén de confianza del lado del cliente.

ADO.NET

En el siguiente ejemplo, la aplicación se conecta utilizando SSL y el certificado del servidor se debe verificar.

using SQLC = Microsoft.Data.SqlClient; ... static public void Main() { using (var connection = new SQLC.SqlConnection( "Server=tcp:dbinstance.rds.amazon.com;" + "Database=ExampleDB;User ID=LOGIN_NAME;" + "Password=YOUR_PASSWORD;" + "Encrypt=True;TrustServerCertificate=False;" )) { connection.Open(); ... }

Java

En el siguiente ejemplo, la aplicación se conecta utilizando SSL y el certificado del servidor se debe verificar.

String connectionUrl = "jdbc:sqlserver://dbinstance.rds.amazon.com;" + "databaseName=ExampleDB;integratedSecurity=true;" + "encrypt=true;trustServerCertificate=false";

Para habilitar el cifrado SSL para los clientes que se conectan usando JDBC, puede ser necesario añadir el certificado de Amazon RDS al almacén de certificados de CA de Java. Para obtener instrucciones, consulte Configuración del cliente para el cifrado en la documentación de Microsoft SQL Server. También puede proporcionar el nombre del archivo del certificado de CA de confianza directamente añadiendo trustStore=path-to-certificate-trust-store-file a la cadena de conexión.

nota

SI utiliza TrustServerCertificate=true (o su equivalente) en la cadena de conexión, el proceso de conexión omite la validación de la cadena de confianza. En este caso, la aplicación se conecta incluso si el certificado no se puede verificar. El uso de TrustServerCertificate=false aplica la validación del certificado y es una práctica recomendada.

Actualización del almacén de confianza de su aplicación

Puede actualizar el almacén de confianza para las aplicaciones que utilizan Microsoft SQL Server. Para obtener instrucciones, consulte Cifrado de conexiones concretas. Además, consulte Configuración del cliente para el cifrado en la documentación de Microsoft SQL Server.

Si utiliza un sistema operativo distinto a Microsoft Windows, consulte la documentación de distribución de software para conseguir la implementación de SSL/TLS para obtener información sobre la adición de un nuevo certificado de CA de raíz. Por ejemplo, OpenSSL y GnuTLS son opciones populares. Utilice el método de implementación para añadir confianza al certificado de CA de raíz de RDS. Microsoft proporciona instrucciones para configurar certificados en algunos sistemas.

Para obtener información sobre la descarga del certificado raíz, consulte Uso de SSL/TLS para cifrar una conexión a una instancia o clúster de base de datos.

Para obtener secuencias de comandos de ejemplo que importan certificados, consulte Script de muestra para la importación de certificados en su almacén de confianza.

nota

Cuando actualice el almacén de confianza, puede retener certificados antiguos además de añadir los nuevos certificados.