Udostępnij przez


Rozwiązywanie problemów z błędami połączeń TLS

Ważne

Firma Microsoft uruchomiła rotację certyfikatów TLS dla usługi Azure Database for PostgreSQL , aby zaktualizować certyfikaty pośredniego urzędu certyfikacji i wynikowy łańcuch certyfikatów. Korzenie CA pozostają takie same.

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

Harmonogram rotacji certyfikatów

  • Regiony Azure West Central US, East Asia i UK South rozpoczęły rotację certyfikatów TLS 11 listopada 2025 r.
  • Od 19 stycznia 2026 r. ta rotacja certyfikatów ma zostać rozszerzona do pozostałych (z wyjątkiem Chin) regionów, w tym platformy Azure Government.
  • Po Festiwalu Wiosny (Chiński Nowy Rok) 2026 regiony Chin również zostaną poddane rotacji certyfikatów, która obejmuje zmianę jednego z głównych urzędów certyfikacji.

Weryfikowanie konfiguracji klienta

Aby zweryfikować konfigurację klienta przed planowaną rotacją, upewnij się, że zaimplementowane są zalecane konfiguracje dla protokołu TLS.

Sprawdzanie magazynu certyfikatów głównych

Upewnij się, że magazyn certyfikatów głównych klienta zawiera minimalne wymagane certyfikaty główne lub pełny zestaw certyfikatów głównych.

Ostrzeżenie

Ufaj tylko certyfikatom głównego urzędu certyfikacji Azure w głównym magazynie certyfikatów klientów. Nie ufaj pośrednim urzędom certyfikacji ani poszczególnym certyfikatom serwera. Jeśli ufasz tym certyfikatom, mogą wystąpić nieoczekiwane problemy z połączeniem, gdy firma Microsoft aktualizuje łańcuch certyfikatów lub wymienia poszczególne certyfikaty serwera.

Określanie stanu połączenia TLS

Aby określić Twój bieżący stan połączenia TLS, załaduj rozszerzenie sslinfo i następnie wywołaj funkcję ssl_is_used(), aby sprawdzić, czy protokół TLS jest używany. Funkcja zwraca t wartość , jeśli połączenie używa protokołu TLS. W przeciwnym razie zwraca f. Możesz również zebrać wszystkie informacje o użyciu protokołu TLS wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL przy użyciu procesu, klienta i aplikacji, korzystając z następującego zapytania:

SELECT datname as "Database name", usename as "User name", ssl, client_addr, application_name, backend_type
   FROM pg_stat_ssl
   JOIN pg_stat_activity
   ON pg_stat_ssl.pid = pg_stat_activity.pid
   ORDER BY ssl;

Testowanie połączenia TLS przy użyciu protokołu OpenSSL

Do testowania openssl użyj polecenia , aby nawiązać połączenie z usługą Azure Database for PostgreSQL i wyświetlić certyfikaty TLS.

openssl s_client -starttls postgres -showcerts -connect <your-postgresql-server-name>:5432

To polecenie wyświetla informacje o protokole niskiego poziomu, takie jak wersja protokołu TLS i szyfrowanie. Należy użyć opcji -starttls postgres. W przeciwnym razie to polecenie zgłasza, że żaden protokół TLS nie jest używany. Użycie tego polecenia wymaga co najmniej biblioteki OpenSSL 1.1.1.

Repliki do odczytu

W przypadku migracji głównego urzędu certyfikacji do Microsoft RSA Root CA 2017, nowo utworzone repliki mogą używać nowszego certyfikatu głównego urzędu certyfikacji niż serwer podstawowy, jeśli ten został utworzony wcześniej. W przypadku klientów korzystających z ustawień konfiguracji sslmode=verify-ca i sslmode=verify-full, należy zaakceptować nowe i poprzednie certyfikaty urzędu certyfikacji do momentu zakończenia rotacji na wszystkich nowych i istniejących serwerach.

Troubleshoot

  1. Odtwórz problem.
  2. Zbierz dane diagnostyczne, takie jak komunikaty o błędach po stronie klienta, dane wyjściowe psql, dane wyjściowe protokołu OpenSSL s_client i dzienniki serwera.
  3. Sprawdź parametry serwera, w tym require_secure_transport, ssl_min_protocol_versioni ssl_max_protocol_version.
  4. Sprawdź łańcuch certyfikatów i ustawienia klienta sslmode oraz sslrootcert, aby wskazać rozbieżności w wersjach protokołów, pakietach szyfrujących lub brakujących lub obrotowych certyfikatach.

Błędy łączności TLS

  1. Zidentyfikuj komunikaty o błędach, które ty lub twoi użytkownicy widzicie, gdy próbujecie uzyskać dostęp do wystąpienia elastycznego serwera Azure Database for PostgreSQL przy użyciu szyfrowania TLS z klienta. W zależności od aplikacji i platformy komunikaty o błędach mogą się różnić. W wielu przypadkach wskazują one na podstawowy problem.
  2. Sprawdź konfigurację protokołu TLS serwera bazy danych i klienta aplikacji, aby upewnić się, że obsługują one zgodne wersje i zestawy szyfrowania.
  3. Przeanalizuj wszelkie rozbieżności lub luki między serwerem bazy danych a wersjami protokołu TLS klienta i zestawami szyfrowania. Spróbuj je rozwiązać, włączając lub wyłączając niektóre opcje, uaktualnianie lub obniżanie poziomu oprogramowania albo zmienianie certyfikatów lub kluczy. Na przykład może być konieczne włączenie lub wyłączenie określonych wersji protokołu TLS na serwerze lub kliencie, w zależności od wymagań dotyczących zabezpieczeń i zgodności. Może być konieczne wyłączenie protokołów TLS 1.0 i TLS 1.1, które są uważane za niezabezpieczone i przestarzałe, oraz włączenie protokołów TLS 1.2 i TLS 1.3, które są bezpieczniejsze i nowoczesne.
  4. Najnowszy certyfikat wydany przez Microsoft RSA Root CA 2017 ma certyfikat pośredni w łańcuchu podpisany krzyżowo przez DigiCert Global Root G2 CA. Niektóre biblioteki klienta Postgres, podczas używania sslmode=verify-full lub sslmode=verify-ca ustawień, mogą wystąpić błędy połączeń z certyfikatami głównego urzędu certyfikacji, które są podpisane krzyżowo z certyfikatami pośrednimi. Wynikiem są alternatywne ścieżki zaufania.

Aby obejść te problemy, dodaj wszystkie niezbędne certyfikaty do magazynu certyfikatów klienta lub jawnie określ sslrootcert parametr . Możesz też ustawić zmienną PGSSLROOTCERT środowiskową na ścieżkę lokalną, w której znajduje się certyfikat głównego urzędu certyfikacji 2017 urzędu certyfikacji firmy Microsoft RSA z wartością %APPDATA%\postgresql\root.crtdomyślną .

Problemy z urzędem certyfikacji

Uwaga / Notatka

Jeśli nie używasz sslmode=verify-full ani sslmode=verify-ca ustawień w parametrach połączenia aplikacji klienckiej, rotacje certyfikatów nie mają wpływu na Ciebie. W związku z tym nie musisz wykonywać kroków opisanych w tej sekcji.

  1. Utwórz listę certyfikatów w zaufanym magazynie korzeniowym.
  2. Używasz przypinania certyfikatów, jeśli masz indywidualne certyfikaty pośrednie lub indywidualne certyfikaty serwera PostgreSQL. Ta konfiguracja nie jest obsługiwana.
  3. Aby usunąć przypinanie certyfikatu, usuń wszystkie certyfikaty z zaufanego magazynu głównego i dodaj tylko certyfikaty głównego urzędu certyfikacji.

Jeśli wystąpią problemy nawet po wykonaniu tych kroków, skontaktuj się z pomocą techniczną firmy Microsoft. Uwzględnij Rotację ICA 2026 w tytule.

Problemy z przypinaniem certyfikatu

Jeśli nie używasz sslmode=verify-full ani sslmode=verify-ca ustawień w parametrach połączenia aplikacji klienckiej, rotacje certyfikatów nie mają wpływu na Ciebie. W związku z tym nie musisz wykonywać kroków opisanych w tej sekcji.

  1. Sprawdź, czy używasz przypinania certyfikatu w aplikacji.
  2. Utwórz listę certyfikatów w swoim zaufanym magazynie głównym. Przykład:
    • Programistyczne uzyskiwanie listy zaufanych certyfikatów w Java Key Store.
    • Sprawdź magazyn kluczy java cacerts, aby sprawdzić, czy zawiera już wymagane certyfikaty.
  3. Używasz przypinania certyfikatów, jeśli masz indywidualne certyfikaty pośrednie lub indywidualne certyfikaty serwera PostgreSQL.
  4. Aby usunąć przypinanie certyfikatów, usuń wszystkie certyfikaty z zaufanego magazynu certyfikatów root i dodaj nowe certyfikaty.
  5. Zaktualizowane certyfikaty można pobrać z oficjalnego repozytorium firmy Microsoft: szczegóły urzędu certyfikacji platformy Azure.

Jeśli wystąpią problemy nawet po wykonaniu tych kroków, skontaktuj się z pomocą techniczną firmy Microsoft. Uwzględnij Rotację ICA 2026 w tytule.

Weryfikowanie łańcucha certyfikatów

Stary łańcuch

  • Globalny Certyfikat Root G2 firmy DigiCert
    • Microsoft Azure RSA TLS Issuing CA 03/04/07/08
    • Certyfikat serwera

Nowy łańcuch

  • Globalny Certyfikat Root G2 firmy DigiCert
    • Microsoft TLS RSA Root G2
    • Microsoft TLS G2 RSA CA OCSP 02 / 04 / 06 / 08 / 10 / 12 / 14 / 16
    • Certyfikat serwera