Azure SQL Database と SQL Managed Instance のルート CA の変更における変更点について

Azure SQL Database & SQL Managed Instance では、TDS 接続の確立に使用する、Secured Sockets Layer (SSL) もしくは Transport Layer Security (TLS) で有効化されるクライアント アプリケーション/ドライバー用のルート証明書が変更される予定です。 現在のルート証明書は、標準メンテナンスおよびセキュリティのベスト プラクティスの一環で、2020 年 10 月 26 日に有効期限が切れることになっています。 この記事では、予定されている変更、影響を受けるリソース、アプリケーションでデータベース サーバーへの接続を確実に維持するために必要な手順について、詳しく説明します。

予定されている更新

最近、証明機関 (CA) ブラウザー フォーラムから、CA ベンダーによって発行された複数の証明書が準拠していないことを示すレポートが公開されました。

業界のコンプライアンス要件に従い、CA ベンダーは準拠していない CA の CA 証明書の取り消しを始めており、サーバーでは、準拠している CA で発行され、それらの準拠している CA からの CA 証明書によって署名された証明書が使用される必要があります。 現在、Azure SQL Database & SQL Managed Instance では、クライアント アプリケーションが TLS 接続を検証するために使用している、これらの非準拠の証明書のいずれかが使用されているため、Azure SQL サーバーへの潜在的な影響を最小限にするため、確実に適切なアクションが行われるようにする必要があります (後述)。

新しい証明書は、2020 年 10 月 26 日から使用される予定です。 SQL クライアントからの接続時にサーバー証明書の完全な検証を使用する (TrustServerCertificate = false) 場合は、SQL クライアントが 2020 年 10 月 26 日より前に新しいルート証明書を検証できていたことを確認する必要があります。

アプリケーションが影響を受けるかどうかを確認する方法

Azure SQL Database & SQL Managed Instance に接続するためには、SSL/TLS を使用し、ルート証明書を検証しているすべてのアプリケーションでルート証明書を更新する必要があります。

SSL/TLS を現在使用していない場合、アプリケーションの可用性に影響はありません。 お使いのクライアント アプリケーションが、ルート証明書を検証しようとしているかどうかを確認できます。それには、接続文字列を確認します。 TrustServerCertificate が明示的に true に設定されていれば、影響はありません。

大多数のドライバーでそうであるように、クライアント ドライバーが OS 証明書ストアを利用しており、OS のメンテナンスが定期的に行われている場合、この変更の影響はおそらくありません。切り替え後のルート証明書は、お客様の信頼されたルート証明書ストアで既に使用可能になっているためです。 Baltimore CyberTrust Root および DigiCert GlobalRoot G2 Root を調べて、それが存在することを確認してください。

クライアント ドライバーがローカルのファイル証明書ストアを利用している場合は、証明書の予期しない取り消しによってアプリケーションの可用性が中断されないようにするため、または取り消された証明書を更新するため、「接続を維持するために必要な作業」セクションを参照してください。

接続を維持するために必要な作業

証明書の予期しない取り消しによってアプリケーションの可用性が中断されないようにするため、または取り消された証明書を更新するため、以下の手順を実行してください。

どのような影響が考えられるか

ここで説明したようにサーバー証明書を検証しようとしている場合は、データベースに到達できなくなるため、アプリケーションの可用性が中断される可能性があります。 アプリケーションによっては、次のようなさまざまなエラー メッセージが表示される場合があります。

  • 無効な証明書/失効した証明書
  • 接続がタイムアウトしました
  • 該当する場合はエラー

よく寄せられる質問

SSL/TLS を使用していない場合でも、ルート CA を更新する必要がありますか?

SSL/TLS を使用していない場合は、この変更に関して何も行う必要はありません。 それでも、Microsoft では近い将来の TLS の適用を計画しているため、最新の TLS バージョンの使用を開始するための計画を定めてください。

2020 年 10 月 26 日までにルート証明書を更新しないとどうなりますか?

2020 年 11 月 30 日までにルート証明書を更新しないと、SSL/TLS 経由で接続し、ルート証明書の検証を行うアプリケーションは、Azure SQL Database & SQL Managed Instance と通信できなくなり、アプリケーションで、Azure SQL Database & SQL Managed Instance への接続の問題が発生します。

この変更のためにメンテナンスのダウンタイムを計画する必要がありますか?

いいえ。 ここでの変更は、サーバーに接続するクライアント側に対するものなので、この変更のためにメンテナンスのダウンタイムは必要ありません。

2020 年 10 月 26 日より前に、この変更のためのダウンタイムをスケジュールできない場合はどうすればよいですか?

修正に関するこちらのセクションで説明されているように、サーバーへの接続に使用されるクライアントで証明書情報を更新する必要があるため、この場合、サーバーのダウンタイムは必要ありません。

2020 年 11 月 30 日より後に新しいサーバーを作成する場合、影響はありますか?

2020 年 10 月 26 日より後に作成されるサーバーでは、アプリケーションが SSL/TLS を使用して接続するために、新しく発行された証明書を使用できます。

Microsoft はどのくらいの頻度で証明書を更新しますか、または有効期限ポリシーはどのようなものですか?

Azure SQL Database と SQL Managed Instance によって使用されるこれらの証明書は、信頼された証明機関 (CA) によって提供されます。 そのため、Azure SQL Database と SQL Managed Instance でのこれらの証明書のサポートは、CA によるこれらの証明書のサポートに結び付いています。 ただし、今回のケースのように、事前に定義されたこれらの証明書に予期しないバグが存在する可能性があり、その場合はできるだけ早く修正する必要があります。

読み取りレプリカを使用している場合、この更新を行う必要があるのはプライマリ サーバーだけですか? または、すべての読み取りレプリカでも必要ですか?

この更新はクライアント側の変更であるため、レプリカ サーバーからデータを読み取るために使用されていたクライアントの場合、それらのクライアントにも変更を適用する必要があります。

SSL/TLS が使用されているかどうかを確認するためのサーバー側クエリはありますか?

この構成はクライアント側であるため、サーバー側では情報を使用できません。

さらに質問がある場合はどうすればよいですか?

サポート プランをご利用で、技術的支援が必要な場合は、Azure サポート リクエストを作成する方法に関するページを参照し、Azure サポート リクエストを作成してください。