Azure Database for MySQL のルート証明書のローテーション

Important

ルート証明書のローテーション スケジュール:

  • DigiCert Global Root CA (G1) から中国リージョンの DigiCert Global Root G2 へのルート CA 証明書の更新は、2026 年 3 月 9 日から開始されます。
  • クライアント構成で TLS の推奨構成を使用している場合は、何も行う必要はありません。

現在のルート証明書 DigiCert グローバル ルート CA は、次の 2 つの新しいルート証明書に置き換えられます。

  • DigiCert Global Root G2
  • Microsoft RSA Root Certificate Authority 2017

ルート証明書の検証でトランスポート層セキュリティ (TLS) を使用する場合は、移行期間中に 3 つのルート証明書をすべてインストールする必要があります。 すべての証明書を変更したら、古い SHA-1 ルート証明書 DigiCert グローバル ルート CA を ストアから削除できます。 2025 年 9 月 1 日より前に新しい証明書を追加しないと、データベースへの接続は 失敗します

この記事では、2 つの新しいルート証明書を追加する方法と、よく寄せられる質問への回答について説明します。

SHA-1 の継続的な使用が阻害要因であり、一般的なロールアウトの前に証明書を変更する場合は、 この記事の手順に従って、クライアントで統合証明機関 (CA) 証明書を作成します。 次に、Azure Database for MySQL の証明書をローテーションするサポート 要求を開きます。

ルート証明書の更新が必要な理由

Azure Database for MySQL ユーザーは、定義済みの証明書のみを使用して MySQL サーバー インスタンスに接続できます。 現在の証明書は DigiCert グローバル ルート CA によって署名されます。 SHA-1 を使用します。 SHA-1 ハッシュ アルゴリズムは、検出された脆弱性により、かなり安全ではありません。 セキュリティ標準に準拠しなくなりました。

Microsoft は、問題を修復するために、準拠しているルート証明機関によって署名された証明書に証明書をローテーションする必要があります。

クライアントのルート証明書ストアを更新する方法

ルート証明書のローテーション後にアプリケーションが Azure Database for MySQL に接続できるようにするには、クライアントのルート証明書ストアを更新します。 ルート証明書の検証で SSL/TLS を使用している場合は、ルート証明書ストアを更新します。

次の手順では、クライアント上のルート証明書ストアを更新するプロセスについて説明します。

  1. 3 つのルート証明書をダウンロードします。 DigiCert グローバル ルート CA 証明書をインストールした場合は、最初のダウンロードをスキップできます。

  2. ダウンロードした証明書をクライアント証明書ストアに追加します。 プロセスは、クライアントの種類によって異なります。

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.trustStore プロパティと javax.net.ssl.trustStorePassword プロパティを変更する必要はありません。

.NET クライアントを更新する

ルート証明書のローテーション用に .NET クライアント証明書を更新するには、次の手順に従います。

Windows 上の .NET

Windows 上の .NET ユーザーの場合は、 DigiCert Global Root CADigiCert Global Root G2Microsoft RSA Root Certificate Authority 2017、信頼されたルート証明機関の下の Windows 証明書ストアに存在することを確認します。 証明書が存在しない場合は、インポートします。

Azure Database for MySQL .NET 証明書のスクリーンショット。

Linux 上の .NET

SSL_CERT_DIRを使用する Linux 上の .NET ユーザーの場合は、DigiCertGlobalRootCA.crt.pemDigiCertGlobalRootG2.crt.pemMicrosoft 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

その他のクライアント

他のクライアントのユーザーの場合は、3 つのルート証明書をすべて含む結合証明書ファイルを作成します。

その他のクライアントは次のとおりです。

  • MySQL Workbench
  • C または C++
  • Go
  • Python
  • Ruby
  • PHP
  • Node.js
  • Perl
  • Swift

Steps

  1. 新しいテキスト ファイルを作成し、 combined-ca-certificates.pemとして保存します。
  2. 3 つすべての証明書ファイルの内容をコピーして、次の形式でこの 1 つのファイルに貼り付けます。
-----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 でホストされているデータイン レプリケーションの場合は、次の形式で CA 証明書ファイルをマージします。

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

レプリカ サーバーを再起動します。