Udostępnij za pomocą


Rotacja certyfikatów głównych dla usługi Azure Database for MySQL

Aby zachować nasze standardy zabezpieczeń i zgodności, zaczniemy zmieniać certyfikaty główne dla serwera elastycznego usługi Azure Database for MySQL po 1 września 2025 r.

Bieżący certyfikat główny digiCert globalny główny urząd certyfikacji jest zastępowany przez dwa nowe certyfikaty główne:

  • DigiCert Globalny Certyfikat Root G2
  • Nadrzędny Urząd Certyfikacji Microsoft RSA 2017

Jeśli używasz protokołu Transport Layer Security (TLS) z weryfikacją certyfikatu głównego, musisz mieć zainstalowane wszystkie trzy certyfikaty główne w okresie przejściowym. Po zmianie wszystkich certyfikatów można usunąć stary certyfikat główny SHA-1 DigiCert Global Root CA z magazynu. Jeśli nie dodasz nowych certyfikatów przed 1 września 2025 r., połączenia z bazami danych kończą się niepowodzeniem.

Ten artykuł zawiera instrukcje dotyczące dodawania dwóch nowych certyfikatów głównych oraz odpowiedzi na często zadawane pytania.

Note

Jeśli dalsze użycie algorytmu SHA-1 jest blokowaniem i chcesz zmienić certyfikaty przed ogólnym wdrożeniem, postępuj zgodnie z instrukcjami w tym artykule dotyczącymi tworzenia połączonego certyfikatu urzędu certyfikacji na kliencie. Następnie otwórz zgłoszenie żądania wsparcia, aby zmienić certyfikat dla usługi Azure Database for MySQL.

Dlaczego wymagana jest aktualizacja certyfikatu głównego?

Użytkownicy usługi Azure Database for MySQL mogą używać tylko wstępnie zdefiniowanego certyfikatu do nawiązywania połączenia z wystąpieniami serwera MySQL. Te certyfikaty są podpisane przez główny urząd certyfikacji. Bieżący certyfikat jest podpisany przez DigiCert Global Root CA. Używa algorytmu SHA-1. Algorytm wyznaczania wartości skrótu SHA-1 jest znacznie niepewny ze względu na wykryte luki w zabezpieczeniach. Nie jest już zgodny z naszymi standardami zabezpieczeń.

Aby rozwiązać ten problem, musimy obrócić certyfikat na jeden podpisany przez zgodny główny urząd certyfikacji.

Jak zaktualizować magazyn certyfikatów głównych na kliencie

Aby upewnić się, że aplikacje mogą łączyć się z usługą Azure Database for MySQL po rotacji certyfikatów głównych, zaktualizuj magazyn certyfikatów głównych na kliencie. Zaktualizuj magazyn certyfikatów głównych, jeśli używasz protokołu SSL/TLS z weryfikacją certyfikatu głównego.

W poniższych krokach przedstawiono proces aktualizowania magazynu głównych certyfikatów na urządzeniu klienckim:

  1. Pobierz trzy certyfikaty główne. Jeśli zainstalowano certyfikat globalnego urzędu certyfikacji firmy DigiCert , możesz pominąć pierwsze pobieranie:

  2. Pobierz certyfikat globalnego głównego urzędu certyfikacji firmy DigiCert.

  3. Pobierz certyfikat Global Root G2 firmy DigiCert.

  4. Pobierz certyfikat głównego urzędu certyfikacji RSA firmy Microsoft 2017.

  5. Dodaj pobrane certyfikaty do magazynu certyfikatów klienta. Proces różni się w zależności od typu klienta.

Aktualizowanie klienta Java

Wykonaj następujące kroki, aby zaktualizować certyfikaty klienta Java dla rotacji certyfikatów głównych.

Tworzenie nowego magazynu zaufanych certyfikatów głównych

Dla użytkowników języka Java uruchom następujące polecenia, aby utworzyć nowy zaufany magazyn certyfikatów głównych:

keytool -importcert -alias MySqlFlexServerCACert  -file digiCertGlobalRootCA.crt.pem  -keystore truststore -storepass password -noprompt
keytool -importcert -alias MySqlFlexServerCACert2  -file digiCertGlobalRootG2.crt.pem -keystore truststore -storepass password -noprompt
keytool -importcert -alias MicrosoftRSARootCert2017  -file MicrosoftRSARootCertificateAuthority2017.crt -keystore truststore -storepass password -noprompt

Następnie zastąp oryginalny plik magazynu kluczy nowo wygenerowanym plikiem magazynu kluczy.

  • System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file");
  • System.setProperty("javax.net.ssl.trustStorePassword","password");

Aktualizowanie istniejącego magazynu zaufanych certyfikatów głównych

W przypadku użytkowników języka Java uruchom następujące polecenia, aby dodać nowe zaufane certyfikaty główne do istniejącego zaufanegomagazynu certyfikatów głównych:

keytool -importcert -alias MySqlFlexServerCACert2  -file digiCertGlobalRootG2.crt.pem -keystore truststore -storepass password -noprompt
keytool -importcert -alias MicrosoftRSARootCert2017  -file MicrosoftRSARootCertificateAuthority2017.crt -keystore truststore -storepass password -noprompt

Jeśli zaktualizujesz istniejący magazyn kluczy, nie musisz zmieniać javax.net.ssl.trustStore właściwości i javax.net.ssl.trustStorePassword .

Aktualizowanie klienta platformy .NET

Wykonaj następujące kroki, aby zaktualizować certyfikaty klienta platformy .NET na potrzeby rotacji certyfikatów głównych.

Platforma .NET w systemie Windows

W przypadku użytkowników platformy .NET w systemie Windows upewnij się, że globalny główny urząd certyfikacji DigiCert, globalny główny urząd certyfikacji DigiCert G2 i główny urząd certyfikacji MICROSOFT RSA 2017 istnieją w magazynie certyfikatów systemu Windows w obszarze Zaufane główne urzędy certyfikacji. Jeśli jakikolwiek certyfikat nie istnieje, zaimportuj go.

Zrzut ekranu przedstawiający certyfikaty platformy .NET usługi Azure Database for MySQL.

Platforma .NET w systemie Linux

W przypadku użytkowników platformy .NET w systemie Linux korzystających z programu SSL_CERT_DIRupewnij się, że DigiCertGlobalRootCA.crt.pemelement , DigiCertGlobalRootG2.crt.pemi Microsoft RSA Root Certificate Authority 2017.crt.pem istnieje w katalogu wskazanym przez SSL_CERT_DIRpolecenie . Jeśli jakikolwiek certyfikat nie istnieje, utwórz brakujący plik certyfikatu.

Przekonwertuj certyfikat na Microsoft RSA Root Certificate Authority 2017.crt format PEM, uruchamiając następujące polecenie:

openssl x509 -inform der -in MicrosoftRSARootCertificateAuthority2017.crt -out MicrosoftRSARootCertificateAuthority2017.crt.pem

Inni klienci

W przypadku innych użytkowników korzystających z innych klientów należy utworzyć połączony plik certyfikatu zawierający wszystkie trzy certyfikaty główne.

Inni klienci, tacy jak:

  • MySQL Workbench
  • C lub C++
  • Go
  • Python
  • Ruby
  • PHP
  • Node.js
  • Perl
  • Swift

Kroki

  1. Utwórz nowy plik tekstowy i zapisz go jako combined-ca-certificates.pem
  2. Skopiuj i wklej zawartość wszystkich trzech plików certyfikatów do tego pojedynczego pliku w następującym formacie:
-----BEGIN CERTIFICATE-----
(Content from DigiCertGlobalRootCA.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Content from DigiCertGlobalRootG2.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Content from MicrosoftRSARootCertificateAuthority2017.crt.pem)
-----END CERTIFICATE-----

Replikacja typu data-in MySQL

W przypadku replikacji typu data-in, w której zarówno podstawowy, jak i replika są hostowane na platformie Azure, można scalić pliki certyfikatów urzędu certyfikacji w następującym formacie:

SET @cert = '-----BEGIN CERTIFICATE-----
(Root CA1:DigiCertGlobalRootCA.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Root CA2: DigiCertGlobalRootG2.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Root CA3: .crt.pem)
-----END CERTIFICATE-----'

Wywołaj metodę mysql.az_replication_change_master w następujący sposób:

CALL mysql.az_replication_change_master('master.companya.com', 'syncuser', 'P@ssword!', 3306, 'mysql-bin.000002', 120, @cert);

Important

Uruchom ponownie serwer repliki.