Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Při připojování aplikací ke službě Azure Database for PostgreSQL musí klient aplikace instalovat 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, což je běžný scénář pro aplikace připojující se k instanci flexibilního serveru Azure Database for PostgreSQL.
Důležité
Od 11. listopadu 2025 je plánována rotace certifikátů TLS/SSL pro oblasti Azure v následujícím seznamu, která používá nové zprostředkující certifikáty CA.
- Středozápadní USA
- Východní Asie
- Velká Británie – jih
Od 19. ledna 2026 se plánuje tato rotace rozšířit do všech zbývajících regionů Azure, včetně Azure Government a všech ostatních regionů.
Informace o řešení potíží najdete v tématu Problémy s připnutím certifikátu.
Import kořenových certifikátů certifikační autority v úložišti klíčů Java v klientovi pro scénáře připnutí certifikátu
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 úložiště důvěryhodnosti Java. Soubor certifikátů s názvem cacerts se nachází v adresáři vlastností zabezpečení java.home\lib\security, kde java.home je adresář prostředí runtime ( jre adresář v sadě SDK nebo adresář nejvyšší úrovně prostředí Java™ 2 Runtime Environment).
Pomocí následujících pokynů můžete aktualizovat certifikáty kořenové certifikační autority klienta pro scénáře připnutí klientských certifikátů pomocí PostgreSQL:
Zkontrolujte
cacertsúložiště klíčů Java a zjistěte, jestli už obsahuje požadované certifikáty. Certifikáty v úložišti klíčů Java můžete vypsat pomocí následujícího příkazu:keytool -list -v -keystore ..\lib\security\cacerts > outputfile.txtPokud v úložišti klíčů Java v klientovi nejsou k dispozici potřebné certifikáty, jak je možné vrátit se změnami ve výstupu, měli byste pokračovat následujícími pokyny:
Vytvořte záložní kopii vlastního úložiště klíčů.
Stáhněte si certifikáty a uložte je místně, kde na ně můžete odkazovat.
Vygenerujte kombinované úložiště certifikátů certifikační autority se všemi potřebnými certifikáty kořenové 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 -nopromptNahraď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");Nahraďte původní soubor pem kořenové certifikační autority sloučeným kořenovým souborem 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 Jazyka Java v klientovi.
Následující příklad nejprve přeč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 na skutečném klientovi, protože správci doporučují změnu hesla ihned po instalaci Javy.
Po načtení objektu KeyStore můžeme ke čtení přítomen certifikáty použít třídu PKIXParameters .
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());
}
Aktualizace certifikátů kořenové certifikační autority při použití klientů ve službě Azure App Services pro scénáře připnutí certifikátů
V případě služeb Azure App Services, které se připojují k instanci flexibilního serveru Azure Database for PostgreSQL, můžeme mít dva možné scénáře aktualizace klientských certifikátů a závisí na tom, jak používáte SSL s vaší aplikací nasazenou ve službě Azure App Services.
- Nové certifikáty se do služby App Service přidají na úrovni platformy předtím, než dojde ke změnám ve vaší instanci flexibilního 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, budete muset stáhnout nový certifikát a aktualizovat kód tak, aby ho používal. Dobrým příkladem tohoto scénáře je použití vlastních kontejnerů ve službě App Service, jak je popsáno v kurzu: Konfigurace kontejneru sajdkáře pro vlastní kontejner ve službě Azure App Service v dokumentaci ke službě Azure App Service.
Aktualizace certifikátů kořenové certifikační autority při použití klientů ve službě 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.
Aktualizace certifikátů kořenové certifikační autority pro uživatele .NET (Npgsql) ve Windows pro scénáře připnutí certifikátů
Pro uživatele .NET (Npgsql) ve Windows se připojte k instancím flexibilního serveru Azure Database for PostgreSQL a ujistěte se, že všechny tři kořenové certifikační autority Microsoft RSA 2017, DigiCert Global Root G2 a Digicert Global Root CA existují v úložišti certifikátů Windows, důvěryhodných kořenových certifikačních autoritách. Pokud nějaké certifikáty neexistují, naimportujte chybějící certifikát.
Aktualizace certifikátů kořenové certifikační autority pro ostatní klienty pro scénáře připnutí certifikátu
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-----