Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podczas łączenia aplikacji z usługą Azure Database for PostgreSQL klient aplikacji musi zainstalować zaufane certyfikaty główne. W poniższych sekcjach opisano proces aktualizowania zaufanych certyfikatów głównych dla aplikacji, co jest częstym scenariuszem w przypadku aplikacji łączących się z elastycznym serwerem w usłudze Azure Database for PostgreSQL.
Ważne
Od 11 listopada 2025 r. w regionach platformy Azure wymienionych poniżej planowana jest rotacja certyfikatów TLS/SSL z użyciem nowych certyfikatów pośredniego urzędu certyfikacji.
- Zachodnio-środkowe stany USA
- Azja Wschodnia
- Południowe Zjednoczone Królestwo
Począwszy od 19 stycznia 2026 r., ta rotacja ma zostać rozszerzona na wszystkie pozostałe regiony świadczenia usługi Azure, w tym platformę Azure Government i wszystkie inne regiony.
Aby uzyskać informacje na temat rozwiązywania problemów, zobacz Problemy z przypinaniem certyfikatu.
Importowanie certyfikatów głównego urzędu certyfikacji w magazynie kluczy Java na kliencie na potrzeby scenariuszy przypinania certyfikatów
Niestandardowe aplikacje Java używają domyślnego magazynu kluczy o nazwie cacerts, który zawiera certyfikaty zaufanego urzędu certyfikacji. Jest również często znany jako magazyn zaufania języka Java. Plik certyfikatów o nazwie cacerts znajduje się w katalogu właściwości zabezpieczeń java.home\lib\security, gdzie java.home jest katalogiem środowiska uruchomieniowego ( jre katalog w zestawie SDK lub katalogu najwyższego poziomu środowiska uruchomieniowego Java™ 2).
Możesz użyć następujących wskazówek, aby zaktualizować certyfikaty root CA klienta dla scenariuszy przypinania certyfikatów klienta przy użyciu PostgreSQL.
Sprawdź
cacertsmagazyn kluczy java, aby sprawdzić, czy zawiera już wymagane certyfikaty. Certyfikaty można wyświetlić w magazynie kluczy Java przy użyciu następującego polecenia:keytool -list -v -keystore ..\lib\security\cacerts > outputfile.txtJeśli wymagane certyfikaty nie są obecne w magazynie kluczy java na kliencie, jak można zaewidencjonować w danych wyjściowych, należy postępować zgodnie z następującymi wskazówkami:
Utwórz kopię zapasową niestandardowego magazynu kluczy.
Pobierz certyfikaty i zapisz je lokalnie, gdzie można się do nich odwoływać.
Wygeneruj połączony magazyn certyfikatów urzędu certyfikacji ze wszystkimi wymaganymi certyfikatami głównego urzędu certyfikacji. W poniższym przykładzie pokazano użycie elementu DefaultJavaSSLFactory dla użytkowników JDBC bazy danych 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 -nopromptZastąp oryginalny plik magazynu kluczy nowym wygenerowaną:
System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file"); System.setProperty("javax.net.ssl.trustStorePassword","password");Zastąp oryginalny plik pem głównego urzędu certyfikacji połączonym głównym urzędem certyfikacji i uruchom ponownie aplikację/klienta.
Aby uzyskać więcej informacji na temat konfigurowania certyfikatów klienta za pomocą sterownika JDBC bazy danych PostgreSQL, zobacz tę dokumentację.
Uwaga / Notatka
Aby zaimportować certyfikaty do magazynów certyfikatów klienta, może być konieczne przekonwertowanie plików crt certyfikatu na format pem. Możesz użyć narzędzia OpenSSL, aby wykonać te konwersje plików.
Programowe pobieranie listy zaufanych certyfikatów w magazynie kluczy Java
Domyślnie język Java przechowuje zaufane certyfikaty w specjalnym pliku o nazwie cacerts znajdującym się w folderze instalacyjnym Java na kliencie.
Poniższy przykład najpierw odczytuje i ładuje cacerts go do obiektu 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;
}
Domyślne hasło dla programu cacerts to changeit , ale powinno być inne na rzeczywistym kliencie, ponieważ administratorzy zaleca zmianę hasła natychmiast po zainstalowaniu języka Java.
Po załadowaniu obiektu KeyStore możemy użyć klasy PKIXParameters do odczytywania certyfikatów obecnych.
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());
}
Aktualizowanie certyfikatów głównego urzędu certyfikacji podczas korzystania z klientów w usłudze Azure App Services w scenariuszach przypinania certyfikatów
W przypadku usług Azure App Services, nawiązując połączenie z elastycznym serwerem bazy danych Azure Database for PostgreSQL, istnieją dwa możliwe scenariusze dotyczące aktualizowania certyfikatów klienta. Zależy to od tego, jak używasz protokołu SSL z aplikacją wdrożoną w usługę Azure App Services.
- Nowe certyfikaty są dodawane do App Service na poziomie platformowym przed wprowadzeniem zmian w elastycznym wystąpieniu serwera Azure Database for PostgreSQL. Jeśli używasz certyfikatów SSL zawartych na platformie App Service w aplikacji, nie jest wymagana żadna akcja. Aby uzyskać więcej informacji, zobacz Dodawanie certyfikatów TLS/SSL i zarządzanie nimi w usłudze Azure App Service w dokumentacji usługi Azure App Service.
- Jeśli jawnie dołączasz ścieżkę do pliku certyfikatu SSL w kodzie, musisz pobrać nowy certyfikat i zaktualizować go, aby go użyć. Dobrym przykładem tego scenariusza jest użycie kontenerów niestandardowych w usłudze App Service zgodnie z opisem w artykule Samouczek: konfigurowanie kontenera przyczepki dla kontenera niestandardowego w usłudze Azure App Service w dokumentacji usługi Azure App Service.
Aktualizowanie certyfikatów głównego urzędu certyfikacji podczas korzystania z klientów w usłudze Azure Kubernetes Service (AKS) w scenariuszach przypinania certyfikatów
Jeśli próbujesz nawiązać połączenie z usługą Azure Database for PostgreSQL przy użyciu aplikacji hostowanych w usługach Azure Kubernetes Services (AKS) i przypinania certyfikatów, jest ona podobna do dostępu ze środowiska hosta dedykowanego klienta. Zapoznaj się z krokami tutaj.
Aktualizowanie certyfikatów głównego urzędu certyfikacji dla użytkowników platformy .NET (Npgsql) w systemie Windows w scenariuszach przypinania certyfikatów
W przypadku użytkowników platformy .NET (Npgsql) w systemie Windows, łącząc się z wystąpieniami elastycznego serwera usługi Azure Database for PostgreSQL, upewnij się, że wszystkie trzy Microsoft RSA Root Certificate Authority 2017, DigiCert Global Root G2 i DigiCert Global Root CA istnieją w magazynie certyfikatów systemu Windows, Zaufane główne urzędy certyfikacji. Jeśli jakiekolwiek certyfikaty nie istnieją, zaimportuj brakujący certyfikat.
Aktualizowanie certyfikatów głównego urzędu certyfikacji dla innych klientów w scenariuszach przypinania certyfikatów
W przypadku innych użytkowników klientów postgreSQL można scalić dwa pliki certyfikatów urzędu certyfikacji przy użyciu następującego formatu:
-----BEGIN CERTIFICATE-----
(Root CA1: DigiCertGlobalRootCA.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Root CA2: Microsoft ECC Root Certificate Authority 2017.crt.pem)
-----END CERTIFICATE-----