Поделиться через


Смена корневого сертификата для Базы данных Azure для MySQL

Для поддержания наших стандартов безопасности и соответствия требованиям мы начинаем изменять корневые сертификаты для гибкого сервера Базы данных Azure для MySQL после 1 сентября 2025 года.

Текущий корневой сертификат DigiCert Global Root CA заменяется двумя новыми корневыми сертификатами:

  • DigiCert Global Root G2
  • Корневой удостоверяющий центр Microsoft RSA 2017

При использовании TLS с проверкой корневого сертификата необходимо установить все три корневых сертификата во время переходного периода. После изменения всех сертификатов можно удалить старый корневой сертификат SHA-1 DigiCert Global Root CA из хранилища. Если вы не добавите новые сертификаты до 1 сентября 2025 г., ваши подключения к базам данных завершаются ошибкой.

В этой статье приведены инструкции по добавлению двух новых корневых сертификатов и ответов на часто задаваемые вопросы.

Note

Если продолжающееся использование SHA-1 является блокировщиком, и вы хотите изменить сертификаты перед общим развертыванием, следуйте инструкциям в этой статье по созданию сертификата объединенного центра сертификации (ЦС) на клиенте. Затем откройте запрос в службу поддержки, чтобы обновить сертификат для базы данных Azure для MySQL.

Для чего необходимо обновление корневого сертификата?

База данных Azure для MySQL пользователи могут использовать только предопределенный сертификат для подключения к экземплярам сервера MySQL. Эти сертификаты подписаны корневым центром сертификации. Текущий сертификат подписан DigiCert Global Root CA. В нем используется SHA-1. Алгоритм хэширования SHA-1 является значительно небезопасным из-за обнаруженных уязвимостей. Он больше не соответствует нашим стандартам безопасности.

Чтобы устранить проблему, необходимо сменить сертификат на один, подписанный соответствующим корневым центром сертификации.

Обновление корневого хранилища сертификатов на клиенте

Чтобы убедиться, что приложения могут подключаться к Базе данных Azure для MySQL после смены корневого сертификата, обновите корневое хранилище сертификатов на клиенте. Обновите хранилище корневых сертификатов, если вы используете SSL/TLS с проверкой корневого сертификата.

Ниже приведены инструкции по обновлению корневого хранилища сертификатов на клиенте.

  1. Скачайте три корневых сертификата. Если вы установили сертификат Глобального корневого ЦС DigiCert , вы можете пропустить первую загрузку:

  2. Скачайте сертификат глобального корневого ЦС DigiCert.

  3. Скачайте сертификат DigiCert Global Root G2.

  4. Скачайте сертификат корневого центра сертификации Microsoft RSA 2017.

  5. Добавьте скачанные сертификаты в хранилище сертификатов клиента. Процесс зависит от типа клиента.

Обновление клиента Java

Выполните следующие действия, чтобы обновить сертификаты клиента Java для смены корневых сертификатов.

Создание нового доверенного корневого хранилища сертификатов

Для пользователей Java выполните следующие команды, чтобы создать новое доверенное корневое хранилище сертификатов:

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

Затем замените исходный файл хранилища ключей только что созданным:

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

Обновление существующего доверенного корневого хранилища сертификатов

Для пользователей Java выполните следующие команды, чтобы добавить новые доверенные корневые сертификаты в существующее хранилище доверенных корневых сертификатов:

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

При обновлении существующего хранилища ключей вам не нужно изменять и javax.net.ssl.trustStorePassword свойстваjavax.net.ssl.trustStore.

Обновление клиента .NET

Выполните следующие действия, чтобы обновить сертификаты клиента .NET для смены корневых сертификатов.

.NET в Windows

Для пользователей .NET в Windows убедитесь, что в хранилище сертификатов Windows в доверенных корневых центрах сертификации Windows существуют глобальный корневой ЦС DigiCert, DigiCert Global Root G2 и Microsoft RSA Root Certificate Authority 2017. Если какой-либо сертификат не существует, импортируйте его.

Снимок экрана: сертификаты Базы данных Azure для MySQL .NET.

.NET в Linux

Для пользователей .NET в Linux, которые используютSSL_CERT_DIR, убедитесь, что DigiCertGlobalRootCA.crt.pemDigiCertGlobalRootG2.crt.pemи Microsoft RSA Root Certificate Authority 2017.crt.pem существуют в каталоге, указанному SSL_CERT_DIRв . Если сертификат не существует, создайте отсутствующий файл сертификата.

Преобразуйте сертификат в Microsoft RSA Root Certificate Authority 2017.crt формат PEM, выполнив следующую команду:

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

Другие клиенты

Для других пользователей, использующих другие клиенты, необходимо создать объединенный файл сертификата, содержащий все три корневых сертификата.

Другие клиенты, такие как:

  • MySQL Workbench (инструмент для работы с базами данных)
  • C или C++
  • Go
  • Питон
  • Руби
  • PHP
  • Node.js
  • Perl
  • Свифт

Этапы

  1. Создайте текстовый файл и сохраните его как combined-ca-certificates.pem
  2. Скопируйте и вставьте содержимое всех трех файлов сертификатов в один файл в следующем формате:
-----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-----

Репликация входящих данных MySQL

Для репликации данных, в которой размещаются основные и реплики в Azure, можно объединить файлы сертификатов ЦС в этом формате:

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-----'

Вызов mysql.az_replication_change_master следующим образом:

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

Important

Перезагрузите сервер реплики.