Atualizar certificados de cliente de aplicação em Base de Dados do Azure para PostgreSQL flexible server

Quando liga aplicações ao Base de Dados do Azure para PostgreSQL, o cliente da aplicação tem de instalar certificados de raiz fidedignos. As secções seguintes orientam-no na atualização dos certificados de raiz de confiança das aplicações. Este processo é um cenário comum para aplicações que se ligam a um servidor flexível Base de Dados do Azure para PostgreSQL.

Importante

A Microsoft está a alternar certificados TLS para o Base de Dados do Azure para PostgreSQL para atualizar a Autoridade de Certificação e a cadeia de certificados resultante.

Se a configuração do teu cliente usar as configurações Recomendadas para TLS, não precisas de agir.

Calendário de rotação de certificados intermédios:

  • As atualizações para as regiões do Azure, Centro-Oeste, EUA e Ásia Oriental estão concluídas.
  • As atualizações para as regiões do Sul do Reino Unido e do Governo dos EUA começam a 21 de janeiro de 2026.
  • As atualizações para o Centro dos EUA começam a 26 de janeiro de 2026.
  • As atualizações para todas as outras regiões começam a 28 de janeiro de 2026.

Calendário de rotação de certificados raiz:

  • As atualizações para os certificados root CA do DigiCert Global Root CA (G1) para o DigiCert Global Root G2 nas regiões da China começam a 9 de março de 2026.

Importar certificados de CA raiz no armazenamento de chaves Java no cliente, para cenários de fixação de certificados

Aplicativos Java personalizados usam um keystore padrão, chamado cacerts, que contém certificados de autoridade de certificação (CA) confiáveis. Também é frequentemente conhecido como repositório de confiança Java. Um ficheiro de certificados chamado cacerts reside no diretório de propriedades de segurança, java.home\lib\security, onde java.home é o diretório do ambiente de execução (o jre diretório no SDK ou o diretório de topo do Ambiente de Execução Java ™ 2). Para atualizar os certificados raiz da CA do cliente para cenários de fixação de certificados do cliente com PostgreSQL, use as seguintes direções:

  1. Verifica a cacerts loja de chaves Java para ver se já contém os certificados necessários. Pode listar certificados na loja de chaves Java usando o seguinte comando:

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

    Se os certificados necessários não estiverem presentes na loja de chaves Java do cliente, como pode verificar na saída, siga as seguintes instruções:

  2. Faça uma cópia de backup do seu keystore personalizado.

  3. Transfira certificados e guarde-os localmente onde pode consultá-los.

  4. Gerar um armazenamento combinado de certificados de CA que inclua todos os certificados de CA raiz necessários. O exemplo seguinte mostra a utilização DefaultJavaSSLFactory para utilizadores JDBC do 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. Substitua o arquivo keystore original pelo novo arquivo gerado:

    System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file");
    System.setProperty("javax.net.ssl.trustStorePassword","password");
    
  6. Substitua o ficheiro PEM raiz original da CA pelo ficheiro raiz combinado da CA e reinicie a sua aplicação ou cliente.

    Para obter mais informações sobre como configurar certificados de cliente com o driver JDBC PostgreSQL, consulte esta documentação.

    Observação

    Para importar certificados para repositórios de certificados de cliente, talvez seja necessário converter arquivos .crt de certificado para o formato .pem. Você pode usar o utilitário OpenSSL para fazer essas conversões de arquivo.

Obtenha uma lista de certificados confiáveis no Java Key Store programaticamente

Por defeito, o Java armazena os certificados de confiança num ficheiro especial chamado cacerts que está localizado dentro da pasta de instalação Java no cliente. O exemplo seguinte faz a leitura de cacerts e carrega-o num 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;
}

A palavra-passe padrão para cacerts é changeit, mas deve ser diferente num cliente real, pois os administradores recomendam mudar a palavra-passe imediatamente após a instalação do Java. Depois de carregar o objeto KeyStore , use a classe PKIXParameters para ler os 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());
}

Atualize certificados de CA raiz ao usar clientes no Aplicação Azure AD Services, para cenários de fixação de certificados

Para o Aplicação Azure AD Services ligar-se a um servidor flexível Base de Dados do Azure para PostgreSQL, existem dois cenários possíveis para atualizar certificados de cliente. O cenário depende de como estás a usar SSL com a tua aplicação implementada no Aplicação Azure AD Services.

  • A plataforma adiciona novos certificados ao App Service antes de ocorrerem alterações no seu servidor flexível Base de Dados do Azure para PostgreSQL. Se você estiver usando os certificados SSL incluídos na plataforma do Serviço de Aplicativo em seu aplicativo, nenhuma ação será necessária. Para mais informações, consulte Adicionar e gerir certificados TLS/SSL no Serviço de Aplicações do Azure na documentação do Serviço de Aplicações do Azure.
  • Se estiveres a incluir explicitamente o ficheiro de certificado path to SSL no teu código, precisas de descarregar o novo certificado e atualizar o código para o usares. Um bom exemplo deste cenário é quando utiliza contentores personalizados no App Service, conforme descrito no tutorial Tutorial: Configurar um contentor sidecar para um contentor personalizado no Serviço de Aplicações do Azure na documentação do Serviço de Aplicações do Azure.

Atualize os certificados da AC raiz ao utilizar clientes no Azure Kubernetes Service (AKS) para cenários de fixação de certificados

Se você estiver tentando se conectar ao Banco de Dados do Azure para PostgreSQL usando aplicativos hospedados nos Serviços Kubernetes do Azure (AKS) e fixar certificados, é semelhante ao acesso do ambiente de host de um cliente dedicado. Consulte as etapas aqui.

Atualizar certificados de CA raiz para utilizadores .NET (Npgsql) no Windows, para cenários de fixação de certificados

Para utilizadores de .NET (Npgsql) no Windows que estabelecem ligação ao Base de Dados do Azure para PostgreSQL – servidor flexível, certifique-se de que os três certificados Microsoft RSA Root Certificate Authority 2017, DigiCert Global Root G2 e DigiCert Global Root CA estão presentes no Armazenamento de Certificados do Windows, em Autoridades de Certificação de Raiz Fidedignas. Se não existirem certificados, importe o certificado em falta.

Atualizar certificados raiz da CA para outros clientes, para cenários de fixação de certificados

Para outros utilizadores de clientes PostgreSQL, pode fundir dois ficheiros de certificado da CA usando o seguinte formato:

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