Actualizar los certificados de cliente de la aplicación en Azure Database for PostgreSQL: servidor flexible

Al conectar aplicaciones a Azure Database for PostgreSQL, el cliente de la aplicación debe instalar 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. Este proceso es un escenario común para las aplicaciones que se conectan a un servidor flexible Azure Database for PostgreSQL.

Importante

Microsoft rota los certificados TLS para Azure Database for PostgreSQL para actualizar la entidad de certificación y la cadena de certificados resultante.

Si la configuración de cliente usa las configuraciones recomendadas para TLS, no es necesario realizar ninguna acción.

Programación intermedia de rotación de certificados:

  • Se han completado las actualizaciones de las regiones de Azure Centro-oeste de EE. UU. y Este de Asia.
  • Las actualizaciones de las regiones del Sur de Reino Unido y del Gobierno de EE. UU. comienzan el 21 de enero de 2026.
  • Las actualizaciones para el Centro de Estados Unidos comienzan el 26 de enero de 2026.
  • Las actualizaciones de todas las demás regiones comienzan el 28 de enero de 2026.

Programación de rotación de certificados raíz:

  • Las actualizaciones de los certificados de CA raíz de DigiCert Global Root CA (G1) a DigiCert Global Root G2 en las regiones de China comienzan el 9 de marzo de 2026.

Importa los certificados de CA raíz al almacén de claves de Java en el cliente, para escenarios de fijación 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 jre directorio del SDK o el directorio de nivel superior del entorno en tiempo de ejecución de Java ™ 2). Para actualizar los certificados raíz de CA del cliente para escenarios de fijación de certificados de cliente con PostgreSQL, siga las siguientes instrucciones:

  1. Compruebe el almacén de claves de Java cacerts para ver si ya contiene los certificados necesarios. Puede enumerar certificados en Java almacén de claves mediante el comando siguiente:

      keytool -list -v -keystore ..\lib\security\cacerts > outputfile.txt
    

    Si los certificados necesarios no se encuentran en el almacén de claves de Java del cliente, como puede comprobar en la salida, siga las instrucciones que se indican a continuación:

  2. Realice una copia de seguridad del almacén de claves personalizado.

  3. Descargue los certificados y guárdelos localmente donde puede hacer referencia a ellos.

  4. Genere un almacén combinado de certificados de la entidad certificadora que incluya todos los certificados de la entidad certificadora raíz necesarios. En el ejemplo siguiente se muestra cómo usar DefaultJavaSSLFactory para los usuarios de 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 -noprompt
    
  5. Reemplace 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");
    
  6. Reemplace el archivo PEM de CA raíz original por el archivo 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 forma 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. En el ejemplo siguiente se lee cacerts y se carga en un 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 un cliente real, ya que los administradores recomiendan cambiar la contraseña inmediatamente después de Java instalación. Después de cargar el objeto KeyStore , use 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());
}

Actualiza los certificados de CA raíz cuando utilices clientes en App de Azure Services, para escenarios de fijación de certificados

Para App de Azure Services que se conecta a un servidor flexible Azure Database for PostgreSQL, existen dos escenarios posibles para actualizar los certificados de cliente. El escenario depende de cómo se usa SSL con la aplicación implementada en App de Azure Services.

  • La plataforma agrega nuevos certificados a App Service antes de que se produzcan cambios en el 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 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, debe descargar el nuevo certificado y actualizar el código para usarlo. Un buen ejemplo de este escenario es cuando se utilizan contenedores personalizados en App Service, tal y como se describe en el Tutorial: Configurar un contenedor sidecar para un contenedor personalizado en Azure App Service de la documentación de Azure App Service.

Actualice los certificados de CA raíz cuando utilice clientes en Azure Kubernetes Service (AKS), para escenarios de fijación 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í.

Actualice los certificados de CA raíz para usuarios de .NET (Npgsql) en Windows, para escenarios de fijación de certificados

Para los usuarios de .NET (Npgsql) en Windows que se conecten al servidor flexible de Azure Database for PostgreSQL, asegúrese de que los tres certificados de la Autoridad de Certificación Raíz RSA de Microsoft 2017, DigiCert Global Root G2 y DigiCert Global Root CA estén presentes en el almacén de certificados de Windows, en la sección Autoridades de certificación raíz de confianza. Si no existe alguno de los certificados, importe el certificado que falta.

Actualizar los certificados de CA raíz para otros clientes, en casos de certificate pinning

Para otros usuarios de clientes de PostgreSQL, puede fusionar dos archivos de certificados de CA utilizando el siguiente formato:

-----BEGIN CERTIFICATE-----
(Root CA1: DigiCertGlobalRootCA.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Root CA2: Microsoft ECC Root Certificate Authority 2017.crt.pem)
-----END CERTIFICATE-----