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

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

Importante

El servicio de servidor único de Azure Database for PostgreSQL está en proceso de retirada. Se recomienda encarecidamente actualizar a Azure Database for PostgreSQL: Servidor flexible. Para más información sobre la migración a Azure Database for PostgreSQL: Servidor flexible, vea ¿Qué ocurre con Azure Database for PostgreSQL con un 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.

Importante

Los certificados intermedios SSL se establecen para actualizarse a partir del 31 de enero de 2024 (31/01/2024). Un certificado intermedio es un certificado subordinado emitido por una raíz de confianza específicamente para emitir certificados de entidad final. El resultado es una cadena de certificados que comienza en la CA raíz de confianza, a través de la CA intermedia (o CA) y termina con el certificado SSL emitido. La asignación de certificados es una técnica de seguridad en la que solo se autorizan o asignan certificados al establecer una sesión segura. Cualquier intento de establecer una sesión segura mediante un certificado diferente se rechazará. A diferencia de la entidad de certificación raíz de confianza, que ya se actualizó completamente durante el año actual, y donde se puede anclar el certificado mediante verify-ca o verify-full de directiva de cliente de cadena de conexión completa, no hay ninguna manera estándar y bien establecida para anclar la ca intermedia. Sin embargo, existe una capacidad teórica de crear una pila de conectividad personalizada que ancla certificados intermedios al cliente en una variedad de lenguajes de programación. Como se explicó anteriormente, en el escenario poco probable que está anclando los certificados intermedios con código personalizado, puede verse afectado por este cambio. Para determinar si va a anclar CA, consulte Anclaje de certificados y servicios de Azure

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

Determinar el estado de las conexiones SSL

También puede recopilar toda la información sobre el uso de SSL de la instancia de servidor único de Azure Database for PostgreSQL mediante el proceso, el cliente y la aplicación con la consulta siguiente:

SELECT datname as "Database name", usename as "User name", ssl, client_addr, application_name, backend_type
   FROM pg_stat_ssl
   JOIN pg_stat_activity
   ON pg_stat_ssl.pid = pg_stat_activity.pid
   ORDER BY ssl;

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 siguientes enlaces para obtener certificados para servidores en nubes soberanas: Azure Government, Microsoft Azure operado por 21Vianet, y Azure Germany.

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.