次の方法で共有


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

セキュリティとコンプライアンスの標準を維持するために、2025 年 9 月 1 日以降、Azure Database for MySQL フレキシブル サーバーのルート証明書の変更を開始します。

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

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

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

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

Note

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

なぜルート証明書の更新が必要なのですか?

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

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

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

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

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

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

  2. DigiCert グローバル ルート CA 証明書をダウンロードします

  3. DigiCert グローバル ルート 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.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

ステップス

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

データイン レプリケーション (Data-in Replication) 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

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