Atualizar certificados de cliente do aplicativo no Banco de Dados do Azure para PostgreSQL - Servidor Flexível

Quando você conecta aplicativos a Banco de Dados do Azure para PostgreSQL, o cliente do aplicativo deve instalar certificados raiz confiáveis. As seções a seguir orientam você pela atualização dos certificados raiz confiáveis para aplicativos. Esse processo é um cenário comum para aplicativos que se conectam a um servidor Banco de Dados do Azure para PostgreSQL flexível.

Importante

A Microsoft está alternando certificados TLS para o Banco de Dados do Azure para PostgreSQL para atualizar a Autoridade de Certificação e a cadeia de certificados resultantes.

Se a configuração do cliente usar as configurações recomendadas para TLS, você não precisará tomar medidas.

Agendamento de rotação de certificado intermediário:

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

Agendamento de rotação de certificado raiz:

  • As atualizações dos certificados de autoridade de certificação raiz, do DigiCert Global Root CA (G1) para o DigiCert Global Root G2, nas regiões da China, terão início em 9 de março de 2026.

Importar certificados de autoridade de certificação raiz no repositório de chaves Java no cliente para cenários de fixação de certificado

Os aplicativos Java personalizados usam um repositório de chaves padrão, chamado cacerts, que contém certificados de autoridade de certificação confiável (AC). Também é conhecido como repositório confiável Java. Um arquivo de certificados chamado cacerts reside no diretório de propriedades de segurança, java.home\lib\security, em que java.home é o diretório do ambiente de tempo de execução (o diretório jre no SDK ou o diretório de nível mais alto do ambiente de tempo de execução Java™ 2). Para atualizar certificados de autoridade certificadora raiz do cliente para cenários de pinning de certificado do cliente com PostgreSQL, siga as seguintes instruções:

  1. Verifique o cacerts repositório de chaves Java para ver se ele já contém certificados necessários. Você pode listar certificados no repositório 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 no repositório de chaves do Java no cliente, como você pode verificar na saída, siga as instruções a seguir:

  2. Faça uma cópia de backup do repositório de chaves personalizado.

  3. Baixe certificados e salve-os localmente onde você pode referenciá-los.

  4. Gere um repositório de certificados de AC combinado que inclua todos os certificados de AC raiz necessários. O exemplo a seguir mostra o uso DefaultJavaSSLFactory para usuários 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 de repositório de chaves original pelo novo gerado:

    System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file");
    System.setProperty("javax.net.ssl.trustStorePassword","password");
    
  6. Substitua o arquivo PEM da AC raiz original pelo arquivo de AC raiz combinado e reinicie seu aplicativo ou cliente.

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

    Observação

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

Obter uma lista de certificados confiáveis no Repositório de Chaves Java programaticamente

Por padrão, o Java armazena os certificados confiáveis em um arquivo especial chamado cacerts que está localizado dentro da pasta de instalação java no cliente. O exemplo a seguir lê cacerts e carrega-o em um 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 senha cacerts padrão échangeit, mas deve ser diferente em um cliente real, pois os administradores recomendam alterar a senha imediatamente após Java instalação. 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());
}

Atualizar certificados de autoridade de certificação raiz ao usar clientes no Azure App Services para cenários de fixação de certificado

Para Azure App Services que se conectam a um servidor Banco de Dados do Azure para PostgreSQL flexível, existem dois cenários possíveis para atualizar certificados do cliente. O cenário depende de como você está usando o SSL com seu aplicativo implantado no Azure App Services.

  • A plataforma adiciona novos certificados ao Serviço de Aplicativo antes que ocorram alterações em seu servidor flexível Banco 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 obter mais informações, consulte Adicionar e gerenciar certificados TLS/SSL no Serviço de Aplicativo do Azure na documentação do Serviço de Aplicativo do Azure.
  • Se você estiver incluindo explicitamente o caminho para o arquivo de certificado SSL em seu código, será necessário baixar o novo certificado e atualizar o código para usá-lo. Um bom exemplo desse cenário é quando você usa contêineres personalizados no Serviço de Aplicativo, conforme descrito no Tutorial: Configurar um contêiner de sidecar para contêiner personalizado em Serviço de Aplicativo do Azure na documentação do Serviço de Aplicativo do Azure.

Atualizar certificados de autoridade de certificação raiz ao usar clientes em AKS (Serviço de Kubernetes do Azure), para cenários de fixação de certificado

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

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

Para usuários do .NET (Npgsql) no Windows que se conectam ao servidor flexível do Banco de Dados do Azure para PostgreSQL, verifique se os três certificados Microsoft RSA Root Certificate Authority 2017, DigiCert Global Root G2 e DigiCert Global Root CA estão presentes no Repositório de Certificados do Windows, em Autoridades de Certificação Raiz Confiáveis. Se não encontrar algum deles, importe o certificado ausente.

Atualizar certificados de autoridade de certificação raiz para outros clientes, para cenários de fixação de certificado

Para usuários de outros clientes PostgreSQL, você pode combinar dois arquivos 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-----