Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Al conectar aplicaciones a Azure Database for PostgreSQL, el cliente de la aplicación debe instalar los certificados raíz de confianza. Las secciones siguientes le guían a través de la actualización de los certificados raíz de confianza para las aplicaciones, que es un escenario común para las aplicaciones que se conectan a una instancia de servidor flexible de Azure Database for PostgreSQL.
Importante
A partir del 11 de noviembre de 2025, las regiones de Azure de la lista siguiente están programadas para una rotación de certificados TLS/SSL que use nuevos certificados de CA intermedia.
- Centro-oeste de EE. UU.
- Este de Asia
- UK South
A partir del 19 de enero de 2026, esta rotación está planeada para ampliarse a todas las regiones restantes de Azure, incluido Azure Government y todas las demás regiones.
Para obtener información sobre cómo solucionar problemas, consulte Problemas de anclaje de certificados.
Importación de certificados de entidad de certificación raíz en el almacén de claves de Java en el cliente, para escenarios de anclaje de certificados
Las aplicaciones Java escritas personalizadas usan un almacén de claves predeterminado, denominado cacerts, que contiene certificados de entidad de certificación (CA) de confianza. También se conoce a menudo como almacén de confianza de Java. Un archivo de certificados denominado cacerts reside en el directorio de propiedades de seguridad, java.home\lib\security, donde java.home es el directorio del entorno en tiempo de ejecución (el directorio jre del SDK o el directorio de nivel superior del entorno en tiempo de ejecución de Java™ 2).
Puede usar las siguientes indicaciones para actualizar los certificados de entidad de certificación raíz del cliente para escenarios de asignación de certificados de cliente con PostgreSQL:
Compruebe el almacén de claves
cacertsde Java para ver si ya contiene certificados necesarios. Puede enumerar certificados en el almacén de claves de Java mediante el comando siguiente:keytool -list -v -keystore ..\lib\security\cacerts > outputfile.txtSi los certificados necesarios no están presentes en el almacén de claves java en el cliente, como se puede comprobar en la salida, debe continuar con las siguientes instrucciones:
Realice una copia de seguridad del almacén de claves personalizado.
Descargue los certificados y guárdelos localmente donde puede hacer referencia a ellos.
Genere un almacén de certificados de CA combinado con todos los certificados de CA raíz necesarios incluidos. En el ejemplo siguiente se muestra el uso de DefaultJavaSSLFactory para usuarios JDBC de PostgreSQL.
keytool -importcert -alias PostgreSQLServerCACert -file D:\ DigiCertGlobalRootG2.crt.pem -keystore truststore -storepass password -noprompt keytool -importcert -alias PostgreSQLServerCACert2 -file "D:\ Microsoft ECC Root Certificate Authority 2017.crt.pem" -keystore truststore -storepass password -noprompt keytool -importcert -alias PostgreSQLServerCACert -file D:\ DigiCertGlobalRootCA.crt.pem -keystore truststore -storepass password -nopromptReemplace el archivo de almacén de claves original por el nuevo generado:
System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file"); System.setProperty("javax.net.ssl.trustStorePassword","password");Reemplace el archivo PEM de la CA raíz original por el archivo de CA raíz combinado y reinicie la aplicación o el cliente.
Para obtener más información sobre cómo configurar certificados de cliente con el controlador JDBC de PostgreSQL, consulte esta documentación.
Nota:
Para importar certificados a almacenes de certificados de cliente, es posible que tenga que convertir archivos .crt de certificado en formato .pem. Puede usar utilidad OpenSSL para realizar estas conversiones de archivos.
Obtención de una lista de certificados de confianza en el Almacén de claves de Java mediante programación
De manera predeterminada, Java almacena los certificados de confianza en un archivo especial denominado cacerts que se encuentra dentro de la carpeta de instalación de Java en el cliente.
El ejemplo siguiente lee cacerts primero y lo carga en el objeto KeyStore:
private KeyStore loadKeyStore() {
String relativeCacertsPath = "/lib/security/cacerts".replace("/", File.separator);
String filename = System.getProperty("java.home") + relativeCacertsPath;
FileInputStream is = new FileInputStream(filename);
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
String password = "changeit";
keystore.load(is, password.toCharArray());
return keystore;
}
La contraseña predeterminada para cacerts es changeit, pero debe ser diferente en el cliente real, ya que los administradores recomiendan cambiar la contraseña inmediatamente después de la instalación de Java.
Una vez cargado el objeto KeyStore, podemos usar la clase PKIXParameters para leer los certificados presentes.
public void whenLoadingCacertsKeyStore_thenCertificatesArePresent() {
KeyStore keyStore = loadKeyStore();
PKIXParameters params = new PKIXParameters(keyStore);
Set<TrustAnchor> trustAnchors = params.getTrustAnchors();
List<Certificate> certificates = trustAnchors.stream()
.map(TrustAnchor::getTrustedCert)
.collect(Collectors.toList());
assertFalse(certificates.isEmpty());
}
Actualización de certificados de entidad de certificación raíz al usar clientes en Azure App Services para escenarios de anclaje de certificados
Para los servicios de aplicaciones de Azure, al conectarse a una instancia de servidor flexible de Azure Database for PostgreSQL, podemos encontrar dos escenarios posibles para la actualización de certificados de cliente, y esto depende de cómo estés utilizando SSL con tu aplicación implementada en Azure App Services.
- Los nuevos certificados se agregan a App Service en el nivel de plataforma antes de que se produzcan cambios en la instancia de servidor flexible de Azure Database for PostgreSQL. Si usa los certificados SSL incluidos en la plataforma de App Service en la aplicación, no es necesario realizar ninguna acción. Para obtener más información, consulte Incorporación y administración de certificados TLS/SSL en Azure App Service, en la documentación de Azure App Service.
- Si incluye explícitamente la ruta de acceso al archivo de certificado SSL en el código, tendrá que descargar el nuevo certificado y actualizar el código para usarlo. Un buen ejemplo de este escenario es cuando se usan contenedores personalizados en App Service como se describe en tutorial: Configuración de un contenedor sidecar para un contenedor personalizado en Azure App Service, en la documentación de Azure App Service.
Actualización de certificados de entidad de certificación raíz al usar clientes en Azure Kubernetes Service (AKS), para escenarios de anclaje de certificados
Si está intentando conectarse a Azure Database for PostgreSQL mediante aplicaciones hospedadas en Azure Kubernetes Services (AKS) y anclar certificados, es similar al acceso desde el entorno host de un cliente dedicado. Consulte los pasos aquí.
Actualización de certificados de entidad de certificación raíz para usuarios de .NET (Npgsql) en Windows, para escenarios de anclaje de certificados
Para los usuarios de .NET (Npgsql) en Windows, al conectarse a las instancias de servidores flexibles de Azure Database for PostgreSQL, asegúrese de que las tres Autoridades de Certificación Raíz RSA de Microsoft 2017, DigiCert Global Root G2 y Digicert Global Root CA existan en el almacén de certificados de Windows, entidades de certificación raíz de confianza. Si no existe alguno de los certificados, importe el certificado que falta.
Actualización de certificados de entidad de certificación raíz para otros clientes, para escenarios de anclaje de certificados
Para otros usuarios cliente de PostgreSQL, puede combinar dos archivos de certificado de entidad de certificación con el formato siguiente:
-----BEGIN CERTIFICATE-----
(Root CA1: DigiCertGlobalRootCA.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Root CA2: Microsoft ECC Root Certificate Authority 2017.crt.pem)
-----END CERTIFICATE-----