Udostępnij za pośrednictwem


Aktualizowanie certyfikatów klienta aplikacji

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

Firma Microsoft zmienia certyfikaty TLS dla usługi Azure Database for PostgreSQL w celu zaktualizowania urzędu certyfikacji i wynikowego łańcucha certyfikatów.

Jeśli konfiguracja klienta używa zalecanych konfiguracji dla protokołu TLS, nie musisz podejmować działań.

Harmonogram rotacji certyfikatów pośrednich:

  • Aktualizacje regionów Azure Zachodnio-Środkowe USA i Azja Wschodnia są zakończone.
  • Aktualizacje dla regionów UK South i amerykańskich rządowych rozpoczynają się 21 stycznia 2026 r.
  • Aktualizacje dla środkowych stanów USA rozpoczynają się 26 stycznia 2026 r.
  • Aktualizacje dla wszystkich innych regionów rozpoczynają się 28 stycznia 2026 r.

Harmonogram rotacji certyfikatów głównych:

  • Aktualizacje certyfikatów głównego urzędu certyfikacji z DigiCert Global Root CA (G1) do DigiCert Global Root G2 w regionach Chin rozpoczynają się 9 marca 2026 r.

Importowanie certyfikatów głównego urzędu certyfikacji do magazynu kluczy Java po stronie klienta dla scenariuszy przypinania certyfikatów

Własnoręcznie napisane aplikacje Java używają domyślnego magazynu kluczy o nazwie cacerts, który zawiera certyfikaty urzędów certyfikacji (CA). Jest również nazywany repozytorium zaufania 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.

  1. Sprawdź cacerts magazyn 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.txt
    

    Jeśli wymagane certyfikaty nie są obecne w magazynie kluczy Java na kliencie, co można sprawdzić w danych wyjściowych, należy wykonać następujące kroki:

  2. Utwórz kopię zapasową niestandardowego magazynu kluczy.

  3. Pobierz certyfikaty i zapisz je lokalnie, gdzie można się do nich odwoływać.

  4. Wygeneruj połączony magazyn certyfikatów, uwzględniający wszystkie potrzebne certyfikaty 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 -noprompt
    
  5. Zastąp oryginalny plik keystore nowym wygenerowanym.

    System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file");
    System.setProperty("javax.net.ssl.trustStorePassword","password");
    
  6. Zastąp oryginalny plik PEM głównego urzędu certyfikacji plikiem połączonego głównego urzędu certyfikacji, a następnie uruchom ponownie swoją aplikację lub 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 uzyskiwanie listy zaufanych certyfikatów w Java KeyStore

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 cacerts oraz ładuje 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 klientami 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.

Aktualizacja 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łudze Azure Kubernetes Services (AKS) oraz przypinania certyfikatów, jest to podobne do dostępu z dedykowanego środowiska hosta klienta. Zapoznaj się z krokami tutaj.

Aktualizowanie certyfikatów CA Root dla użytkowników platformy .NET (Npgsql) w systemie Windows w scenariuszach z przypinaniem 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.

Zaktualizuj certyfikaty głównego urzędu certyfikacji dla innych klientów w scenariuszach przypinania certyfikatów

W przypadku użytkowników innych klientów PostgreSQL można scalić dwa pliki certyfikatów CA 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-----