Configuración de la conectividad de TSL en Azure Database for PostgreSQL: un solo servidor

Se aplica a: Azure Database for PostgreSQL: servidor único

Azure Database for PostgreSQL prefiere conectar las aplicaciones cliente al servicio PostgreSQL mediante Seguridad de la capa de transporte (TLS), que anteriormente se denominaba Capa de sockets seguros (SSL). Aplicar conexiones TLS entre el servidor de bases de datos y las aplicaciones cliente ayuda a proteger contra los ataques de tipo "Man in the middle" mediante el cifrado del flujo de datos entre el servidor y la aplicación.

De forma predeterminada, el servicio de base de datos de PostgreSQL está configurado para requerir una conexión TLS. Puede deshabilitar el requisito de TLS si la aplicación cliente no admite la conectividad de TLS.

Nota

Debido a los comentarios de los clientes, se ha extendido la puesta en desuso del certificado raíz de la entidad de certificación raíz de Baltimore existente hasta el 30 de noviembre de 2022 (30/11/2022).

Importante

Se ha establecido que el certificado raíz de SSL expire a partir de diciembre de 2022 (12/2022). Actualice la aplicación para que use el nuevo certificado. Para más información, consulte el artículo sobre las actualizaciones de certificados planeadas.

Aplicación de conexiones TLS

En el caso de todos los servidores de Azure Database for PostgreSQL aprovisionados a través de Azure Portal y la interfaz de la línea de comandos, el establecimiento de conexiones TLS está habilitado de forma predeterminada.

Del mismo modo, las cadenas de conexión que están predefinidas en la configuración de "Cadenas de conexión", en el servidor en Azure Portal, incluyen los parámetros necesarios de lenguajes comunes para conectarse a su servidor de bases de datos mediante TLS. El parámetro TLS varía según el conector, por ejemplo, "ssl = true" o "sslmode = require" o "sslmode = required" y otras variaciones.

Configuración de la aplicación de TLS

Si lo desea, puede deshabilitar el establecimiento de la conectividad TLS. Microsoft Azure recomienda habilitar siempre la opción de configuración Enforce SSL connection (Establecer conexión SSL) para mayor seguridad.

Uso de Azure Portal

Visite el servidor de Azure Database for PostgreSQL y seleccione Seguridad de conexión. Use el botón de alternancia para habilitar o deshabilitar la opción Aplicar conexión SSL. Después, seleccione Guardar.

Seguridad de conexión - Deshabilitar el establecimiento de TLS/SSL

Para confirmar la configuración, consulte la página Información general para ver el indicador Estado de aplicación de SSL.

Uso de la CLI de Azure

Puede habilitar o deshabilitar el parámetro ssl-enforcement con los valores Enabled o Disabled respectivamente en la CLI de Azure.

az postgres server update --resource-group myresourcegroup --name mydemoserver --ssl-enforcement Enabled

Comprobación de que la aplicación o el marco de trabajo admiten conexiones TLS

Algunos marcos de trabajo de aplicaciones que usan PostgreSQL en los servicios de bases de datos no habilitan TLS de manera predeterminada durante la instalación. Si el servidor PostgreSQL establece conexiones TLS, pero la aplicación no está configurada para dicho protocolo, esta puede presentar un error al conectarse al servidor de bases de datos. Consulte la documentación de la aplicación para aprender a habilitar las conexiones TLS.

Aplicaciones que requieren la verificación del certificado para la conectividad TLS

En algunos casos, las aplicaciones requieren un archivo de certificado local generado a partir de un archivo de certificado de una entidad de certificación (CA) de confianza para conectarse de forma segura. El certificado para conectarse a un servidor de Azure Database for PostgreSQL se encuentra en https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem. Descargue el archivo de certificado y guárdelo en la ubicación que prefiera.

Consulte los vínculos siguientes para obtener los certificados de los servidores en nubes soberanas: Azure Government, Azure China y Azure Alemania.

Conexión mediante psql

En el ejemplo siguiente se muestra cómo conectarse a su servidor de PostgreSQL mediante la utilidad de línea de comandos psql. Use la configuración de la cadena de conexión sslmode=verify-full para aplicar la comprobación del certificado TLS/SSL. Pase la ruta de acceso al archivo del certificado local al parámetro sslrootcert.

El comando siguiente es un ejemplo de la cadena de conexión de psql:

psql "sslmode=verify-full sslrootcert=BaltimoreCyberTrustRoot.crt host=mydemoserver.postgres.database.azure.com dbname=postgres user=myusern@mydemoserver"

Sugerencia

Confirme que el valor pasado a sslrootcert coincide con la ruta de acceso al archivo del certificado que guardó.

Aplicación de TLS en un servidor único de Azure Database for PostgreSQL

El servidor único de Azure Database for PostgreSQL admite el cifrado de los clientes que se conectan al servidor de bases de datos mediante la Seguridad de la capa de transporte (TLS). TLS es un protocolo estándar del sector que garantiza conexiones de red seguras entre el servidor de bases de datos y las aplicaciones cliente, lo que le permite ajustarse a los requisitos de cumplimiento.

Configuración de TLS

El único servidor de Azure Database for PostgreSQL proporciona la capacidad de aplicar la versión de TLS para las conexiones cliente. Para aplicar la versión de TLS, use el valor de la opción Versión de TLS mínima. Se permiten los siguientes valores para esta configuración de opción:

Versión de TLS mínima Versión de TLS compatible con el cliente
TLSEnforcementDisabled (valor predeterminado) No se requiere TLS
TLS1_0 TLS 1.0, TLS 1.1, TLS 1.2 y versiones posteriores
TLS1_1 TLS 1.1, TLS 1.2 y versiones posteriores
TLS1_2 TLS versión 1.2 y posteriores

Por ejemplo, si se establece la versión de TLS mínima en TLS 1.0, significa que el servidor permitirá conexiones de los clientes que usen TLS 1.0, 1.1 y 1.2 y versiones posteriores. Como alternativa, si se establece en 1.2 significa que solo se permiten conexiones de los clientes que usan TLS 1.2 o versión posterior y se rechazan todas las conexiones con TLS 1.0 y TLS 1.1.

Nota

De forma predeterminada, Azure Database for PostgreSQL no aplica ninguna versión de TLS mínima (opción de configuración TLSEnforcementDisabled).

Una vez que aplica una versión de TLS mínima, esta no se puede deshabilitar posteriormente.

Para obtener información sobre cómo establecer la configuración de TLS para el servidor único de Azure Database for PostgreSQL, consulte Configuración de los valores de TLS.

Cifrado admitido por el servidor único de Azure Database for PostgreSQL

Como parte de la comunicación SSL/TLS, los conjuntos de cifrado se validan y solo los admitidos pueden comunicarse con el servidor de bases de datos. La validación del conjunto de cifrado se controla en el nivel de puerta de enlace y no de manera explícita en el propio nodo. Si los conjuntos de cifrado no coinciden con algunos de los conjuntos mencionados a continuación, se rechazarán las conexiones de cliente entrantes.

Conjunto de cifrado compatible

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

Pasos siguientes

Revise las distintas opciones de conectividad de aplicaciones en Bibliotecas de conexiones de Azure Database for PostgreSQL.