Aktualizace klientských certifikátů aplikací na flexibilním serveru Azure Database for PostgreSQL

Když připojíte aplikace k Azure Database for PostgreSQL, klient aplikace musí nainstalovat důvěryhodné kořenové certifikáty. Následující části vás provedou aktualizací důvěryhodných kořenových certifikátů pro aplikace. Tento proces je běžným scénářem pro aplikace připojující se k flexibilnímu serveru Azure Database for PostgreSQL.

Důležité

Microsoft rotuje certifikáty TLS pro službu Azure Database for PostgreSQL za účelem aktualizace certifikační autority a výsledného řetězu certifikátů.

Pokud konfigurace klienta používá doporučené konfigurace protokolu TLS, nemusíte provádět akce.

Plán obměně zprostředkujících certifikátů:

  • Aktualizace oblastí Azure USA – středozápad a Východní Asie jsou dokončeny.
  • Aktualizace oblastí VELKÁ BRITÁNIE – jih a státní správa USA začínají 21. ledna 2026.
  • Aktualizace pro centrální USA začínají 26. ledna 2026.
  • Aktualizace pro všechny ostatní oblasti začínají 28. ledna 2026.

Plán obměny kořenových certifikátů:

  • Aktualizace kořenových certifikátů z DigiCert Global Root CA (G1) na DigiCert Global Root CA (G2) v oblastech Číny začínají 9. března 2026.

Importujte kořenové certifikáty certifikační autority do úložiště klíčů Java na klientovi pro scénáře připínání certifikátů

Vlastní napsané aplikace v Javě používají výchozí úložiště klíčů s názvem cacerts, které obsahuje certifikáty důvěryhodné certifikační autority (CA). Často se také označuje jako Java úložiště důvěry. Soubor certifikátů s názvem cacerts se nachází v adresáři vlastností zabezpečení, java.home\lib\securitykde java.home je adresář prostředí runtime (jreadresář v sadě SDK nebo adresář nejvyšší úrovně prostředí runtime Java ™ 2). Pokud chcete aktualizovat certifikáty kořenové certifikační autority klienta pro scénáře připnutí klientských certifikátů pomocí PostgreSQL, použijte následující pokyny:

  1. cacerts Zkontrolujte, jestli úložiště klíčů Java neobsahuje požadované certifikáty. Certifikáty můžete v úložišti klíčů Java vypsat pomocí následujícího příkazu:

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

    Pokud v úložišti klíčů Java v klientovi nejsou k dispozici potřebné certifikáty, jak můžete zkontrolovat ve výstupu, pokračujte následujícími pokyny:

  2. Vytvořte záložní kopii vlastního úložiště klíčů.

  3. Stáhněte si certifikáty a uložte je místně, kde na ně můžete odkazovat.

  4. Vygenerujte kombinované úložiště certifikátů certifikační autority, které obsahuje všechny potřebné kořenové certifikáty certifikační autority. Následující příklad ukazuje použití DefaultJavaSSLFactory pro uživatele PostgreSQL JDBC.

        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. Nahraďte původní soubor úložiště klíčů novým vygenerovaným souborem:

    System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file");
    System.setProperty("javax.net.ssl.trustStorePassword","password");
    
  6. Nahraďte původní PEM soubor kořenové CA sloučeným souborem kořenové CA a restartujte aplikaci nebo klienta.

    Další informace o konfiguraci klientských certifikátů pomocí ovladače PostgreSQL JDBC najdete v této dokumentaci.

    Poznámka:

    Pokud chcete importovat certifikáty do úložišť klientských certifikátů, možná budete muset převést soubory .crt certifikátu do formátu .pem. Tyto převody souborů můžete provést pomocí nástroje OpenSSL.

Získání seznamu důvěryhodných certifikátů v úložišti klíčů Java prostřednictvím kódu programu

Ve výchozím nastavení ukládá Java důvěryhodné certifikáty do speciálního souboru s názvem cacerts , který se nachází v instalační složce Javy v klientovi. Následující příklad načte cacerts a načte ho do objektu 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;
}

Výchozí heslo je cacertschangeit, ale mělo by se lišit u skutečného klienta, protože správci doporučují změnit heslo ihned po instalaci Java. Po načtení objektu KeyStore použijte třídu PKIXParameters k načtení přítomných certifikátů.

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());
}

Aktualizujte certifikáty kořenových certifikačních autorit při používání klientů ve službě Aplikace Azure Service pro scénáře připnutí certifikátu

Pro Aplikace Azure Services připojující se k flexibilnímu serveru Azure Database for PostgreSQL existují dva možné scénáře aktualizace klientských certifikátů. Tento scénář závisí na tom, jak používáte SSL s aplikací nasazenou do služby Aplikace Azure Services.

  • Platforma přidá do služby App Service nové certifikáty před provedením změn na flexibilním serveru Azure Database for PostgreSQL. Pokud ve vaší aplikaci používáte certifikáty SSL zahrnuté na platformě služby App Service, není potřeba žádná akce. Další informace najdete v tématu Přidání a správa certifikátů TLS/SSL ve službě Azure App Service v dokumentaci ke službě Azure App Service.
  • Pokud do kódu explicitně zahrnete cestu k souboru certifikátu SSL, musíte stáhnout nový certifikát a aktualizovat kód tak, aby ho používal. Dobrým příkladem tohoto scénáře je situace, kdy používáte vlastní kontejnery ve službě App Service, jak je popsáno v kurzu: Konfigurace sidecar kontejneru pro vlastní kontejner ve službě Azure App Service v dokumentaci ke službě Azure App Service.

Aktualizace kořenových certifikátů certifikační autority při použití klientů v Azure Kubernetes Service (AKS) pro scénáře připnutí certifikátů

Pokud se pokoušíte připojit ke službě Azure Database for PostgreSQL pomocí aplikací hostovaných ve službě Azure Kubernetes Services (AKS) a připnutí certifikátů, je to podobné přístupu z hostitelského prostředí vyhrazeného zákazníka. Postup najdete tady.

Aktualizujte kořenové certifikáty certifikačních autorit pro uživatele .NET (Npgsql) v systému Windows pro scénáře připnutí certifikátu

Pro uživatele .NET (Npgsql) v systému Windows, kteří se připojují k flexibilnímu serveru Azure Database for PostgreSQL, se ujistěte, že v úložišti certifikátů systému Windows v části Důvěryhodné kořenové certifikační autority existují všechny tři certifikační autority Microsoft RSA Root Certificate Authority 2017, DigiCert Global Root G2 a DigiCert Global Root CA. Pokud nějaké certifikáty neexistují, naimportujte chybějící certifikát.

Aktualizujte kořenové certifikáty certifikační autority pro ostatní klienty ve scénářích připnutí certifikátů

Pro ostatní uživatele klienta PostgreSQL můžete sloučit dva soubory certifikátů certifikační autority pomocí následujícího formátu:

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