Azure SQL Database と Azure SQL Managed Instance は、セキュリティで保護されたソケット層 (SSL) またはトランスポート層セキュリティ (TLS) で有効になっているクライアント アプリケーション/ドライバーのルート証明書を変更し、セキュリティで保護された TDS 接続を確立するために使用します。 ルート証明機関の詳細の最新の一覧を取得するには、 Azure 証明機関の詳細を参照してください。 この記事では、予定されている変更、影響を受けるリソース、アプリケーションでデータベース サーバーへの接続を確実に維持するために必要な手順について、詳しく説明します。
どんな更新が行われる予定ですか?
証明機関 (CA) ブラウザー フォーラム では、最近、準拠していない CA ベンダーによって発行された複数の証明書のレポートが公開されました。
業界のコンプライアンス要件に従って、CA ベンダーは非準拠 CA の CA 証明書の失効を開始し、準拠 CA によって発行された証明書の使用をサーバーに要求し、それらの準拠 CA からの CA 証明書によって署名されました。 現在、SQL Database と SQL Managed Instance では、クライアント アプリケーションが TLS 接続の検証に使用する非準拠証明書のいずれかを使用しているため、Azure SQL サーバーへの潜在的な影響を最小限に抑えるために適切なアクションが実行されるようにする必要があります。
SQL クライアント (TrustServerCertificate=false
) から接続するときにサーバー証明書の完全な検証を使用する場合は、SQL クライアントが ルート証明機関に記載されている新しいルート証明書を検証できることを確認する必要があります。
アプリケーションが影響を受けるかどうかを確認する方法
Azure SQL Database & SQL Managed Instance に接続するためには、SSL/TLS を使用し、ルート証明書を検証しているすべてのアプリケーションでルート証明書を更新する必要があります。
SSL/TLS を現在使用していない場合、アプリケーションの可用性に影響はありません。 お使いのクライアント アプリケーションが、ルート証明書を検証しようとしているかどうかを確認できます。それには、接続文字列を確認します。
TrustServerCertificate
が明示的に true に設定されている場合は、影響を受けられません。
多くのドライバーがそうであるように、クライアントドライバーがOS証明書ストアを利用しており、かつOSが定期的にメンテナンスされている場合、今回の変更は影響を与えない可能性が高いです。切り替えるルート証明書は、すでに信頼されたルート証明書ストアに存在しているはずです。 ルート証明機関の一覧を確認し、いずれかの証明書が信頼されたルート証明書ストアに存在することを確認します。
クライアント ドライバーがローカルのファイル証明書ストアを利用している場合は、証明書の予期しない取り消しによってアプリケーションの可用性が中断されないようにするため、または取り消された証明書を更新するため、「接続を維持するために必要な作業」セクションを参照してください。
接続を維持するために必要な作業
証明書の予期しない取り消しによってアプリケーションの可用性が中断されないようにするため、または取り消された証明書を更新するため、以下の手順を実行してください。
ルート証明機関から次の 証明書をダウンロードします。
- デジサートグローバルルートG2
- Microsoft ECC ルート認証局 2017
- Microsoft RSA ルート認証局 2017
クライアント コンピューターの信頼されたルート証明書ストアに証明書をインポートします。 証明書をインポートする手順は、使用しているオペレーティング システムとクライアント ドライバーによって異なります。 たとえば、Windows を使用している場合は、Microsoft 管理コンソール (MMC) を使用して、信頼されたルート証明機関ストアに証明書をインポートできます。
どのような影響が考えられるか
ここで説明するようにサーバー証明書を検証している場合は、データベースに到達できないため、アプリケーションの可用性が中断される可能性があります。 アプリケーションによっては、次のようなさまざまなエラー メッセージを受け取ることができます。
- 無効な証明書/失効した証明書
- 接続がタイムアウトしました
- 該当する場合はエラー
よく寄せられる質問
SSL/TLS を使用していない場合でも、ルート CA を更新する必要がありますか?
SSL/TLS を使用していない場合は、この変更に関して何も行う必要はありません。 それでも、Microsoft では近い将来の TLS の適用を計画しているため、最新の TLS バージョンの使用を開始するための計画を定めてください。
証明書の有効期限が切れたときにルート証明書を更新しないとどうなるでしょうか。
有効期限が切れる前にルート証明書を更新しないと、SSL/TLS 経由で接続し、ルート証明書の検証を行うアプリケーションは SQL Database と SQL Managed Instance と通信できず、アプリケーションで SQL Database と SQL Managed Instance への接続の問題が発生します。
この変更のためにメンテナンスのダウンタイムを計画する必要がありますか?
いいえ。 ここでの変更は、サーバーに接続するクライアント側に対するものなので、この変更のためにメンテナンスのダウンタイムは必要ありません。
この変更のスケジュールされたダウンタイムを取得できない場合はどうすればよいですか?
修正に関するこちらのセクションで説明されているように、サーバーへの接続に使用されるクライアントで証明書情報を更新する必要があるため、この場合、サーバーのダウンタイムは必要ありません。
2020 年 11 月 30 日より後に新しいサーバーを作成する場合、影響はありますか?
新しいサーバーの場合は、アプリケーションに対して新しく発行された証明書を使用して、SSL/TLS を使用して接続できます。
Microsoft はどのくらいの頻度で証明書を更新しますか、または有効期限ポリシーはどのようなものですか?
SQL Database および SQL Managed Instance で使用されるこれらの証明書は、信頼できる証明機関 (CA) によって提供されます。 そのため、SQL Database と SQL Managed Instance でのこれらの証明書のサポートは、CA によるこれらの証明書のサポートに関連付けられています。 ただし、今回のケースのように、事前に定義されたこれらの証明書に予期しないバグが存在する可能性があり、その場合はできるだけ早く修正する必要があります。
読み取りレプリカを使用している場合は、プライマリ サーバーまたはすべての読み取りレプリカでのみこの更新を実行する必要がありますか?
この更新はクライアント側の変更であるため、クライアントがレプリカ サーバーからデータを読み取るために使用した場合は、それらのクライアントにも変更を適用する必要があります。
SSL/TLS が使用されているかどうかを確認するためのサーバー側クエリはありますか?
この構成はクライアント側であるため、サーバー側では情報を使用できません。
さらに質問がある場合はどうすればよいですか?
サポート プランをご利用で、技術的支援が必要な場合は、Azure サポート リクエストを作成する方法に関するページを参照し、Azure サポート リクエストを作成してください。