適用対象:SQL Server 2022 (16.x)
厳密な接続暗号化により、適切なセキュリティ プラクティスが適用され、SQL Server トラフィックが標準のネットワーク アプライアンスで管理できるようになります。
この記事では、厳密な接続の種類を使用して SQL Server 2022 (16.x) 以降のバージョンに接続する方法について説明します。
前提条件
- SQL Server 2022 (16.x) 以降
- ODBC または OLE DB Driver for SQL Server
- SQL Server 用 ODBC ドライバー バージョン 18.1.2.1 以上
- OLE DB Driver for SQL Server バージョン 19.2.0 以上
- TLS 証明書を作成して SQL Server にインストールします。 詳細については、「データベース エンジンへの暗号化接続の有効化」を参照してください。
.NET アプリケーションを使用して SQL Server に接続する
暗号化の種類 strict
を使用して SQL Server を構築し、それに接続する方法については、接続文字列を適切に作成する方法について説明されている「接続文字列の構文」を参照してください。 新しい接続文字列プロパティの詳細については、接続文字列の暗号化プロパティに対するその他の変更に関するページを参照してください。
ODBC DSN を使用して接続する
SQL Server に対する ODBC DSN を使用して、接続暗号化の種類 Strict
での接続をテストすることができます。
Windows で ODBC データ ソース アプリを検索します。
ODBC データ ソース アドミニストレーターの [ドライバー] タブを参照して、最新の ODBC ドライバーがあることを確認します。
[システム DSN] タブで、[追加] を選択して DSN を作成します。 次に、[ODBC Driver 18 for SQL Server] を選択します。 完了 を選択します。 これを使用して接続をテストします。
[SQL Server に接続するための新規データ ソースを作成する] ウィンドウで、このデータ ソースの名前を指定し、SQL Server 2022 (16.x) サーバー名を [サーバー] に追加します。 [次へ] を選択します。
[接続暗号化] が含まれる画面に到達するまで、すべての設定で、すべて既定値を使用します。 [厳密] を選択します。 入力したサーバー名が証明書内のサーバー名と異なる場合、または IP アドレスが代わりに使用されている場合は、[証明書のホスト名] を自分の証明書内で使用されているものに設定します。 完了 を選択します。
[ODBC Microsoft SQL Server セットアップ] ダイアログ ボックスが表示されたら、[データ ソースのテスト] ボタンを選択して接続をテストします。 これにより、SQL Server への
strict
接続が、このテストで適用されます。
ユニバーサル データ リンクを使用して接続する
OLE DB Driver をユニバーサル データ リンク (UDL) と組み合わせて使用して、strict
暗号化を使用した SQL Server への接続をテストすることもできます。
UDL ファイルを作成して自分の接続をテストするには、デスクトップを右クリックし、[新規作成]>[テキスト ドキュメント] を選択します。 拡張子を
txt
からudl
に変更する必要があります。 ファイルには任意の名前を付けることができます。Note
拡張子を
txt
からudl
に変更するには、拡張子の名前を表示できる必要があります。 拡張子が表示されない場合に、拡張子の表示を有効にするには、[エクスプローラー]>[表示]>[表示]>[ファイルの名前の拡張子] を開きます。作成した UDL ファイルを開き、[プロバイダー] タブに移動して、[Microsoft OLE DB Driver 19 for SQL Server] を選択します。 [次へ>>] を選択します。
[接続] タブで、SQL Server サーバー名を入力し、SQL Server へのログインに使用する認証方法を選択します。
[詳細設定] タブで、[接続の暗号化] として [厳密] を選択します。 入力したサーバー名が証明書内のサーバー名と異なる場合、または IP アドレスが代わりに使用されている場合は、[証明書のホスト名] を自分の証明書内で使用されているものに設定します。 完了したら、[接続] タブに戻ります。
[接続のテスト] を選択し、接続の暗号化
strict
を使用した接続をテストします。
SSMS を使用して接続する
バージョン 20 以降、SQL Server Management Studio (SSMS) の [サーバーへの接続] ダイアログ ボックスの [ログイン] タブで、厳密な暗号化を適用できます。
Always On 可用性グループに接続する
SQL Server 2025 (17.x) Preview RC 0 以降では、 Strict
または接続暗号化の種類を使用して、Windows Server フェールオーバー クラスターと Always On 可用性グループ レプリカ間の通信 Mandatory
暗号化できます。 可用性グループは、Windows Server フェールオーバー クラスターに基づいている場合にのみ暗号化を適用できます。 他の種類の可用性グループでは、厳密な暗号化はサポートされていません。
手順は、可用性が既に存在するかどうかによって異なります。
新しい可用性グループに厳密な暗号化を強制するには、次の手順に従います。
- まだ行っていない場合は、証明書の要件に従って、可用性グループのすべてのレプリカに TLS 証明書をインポートします。 証明書をインポートした後、各 SQL Server インスタンスを再起動します。
- 暗号化を適用するこの記事で説明されているいずれかの方法を使用して、各 SQL Server レプリカへの接続をテストします。
- プロパティが可用性グループの句でに設定された CREATE AVAILABILITY GROUP。 これにより、可用性グループへのすべての接続で、指定した暗号化の種類が使用されるようになります。
- 可用性グループが現在オンラインの場合は、可用性グループをセカンダリ レプリカにフェールオーバーして、新しい暗号化設定を可用性グループに適用します。 可用性グループがオンラインにならない場合は、
ClusterConnectionOptions
が正しく設定されていない可能性があります。 クラスターが SQL Server レプリカへの接続に失敗した場合に関連する ODBC エラーのcluster.logを確認します。 必要に応じて、新しいセカンダリ レプリカがオンラインになり、可用性グループに接続された後、可用性グループを元のプライマリ レプリカにフェールバックできます。 - (省略可能)さらに暗号化を適用するには、各レプリカの接続プロトコルの SQL Server Configuration Manager プロパティで [
Yes
] オプションをに設定します。 この設定により、可用性グループ レプリカへのすべての接続で厳密な暗号化が使用されます。 この設定を変更した後、各 SQL Server レプリカを再起動します。
フェールオーバー クラスター インスタンスに接続する
SQL Server 2025 (17.x) Preview RC 0 以降では、またはStrict
接続暗号化の種類を使用して、Windows Server Mandatory
間の通信を暗号化できます。 この手順を実行するには、以下のステップに従ってください。
- まだ行っていない場合は、証明書の要件で定義されているように、フェールオーバー クラスターのすべてのノードに TLS 証明書をインポートします。 証明書をインポートした後、SQL Server インスタンスを再起動します。
- 暗号化を適用するこの記事で説明されているいずれかの方法を使用して、フェールオーバー クラスター インスタンスへの接続をテストします。
- プロパティを または に設定する句を含む ALTER SERVER CONFIGURATION。 これにより、フェールオーバー クラスター インスタンスへのすべての接続で、指定した暗号化の種類が使用されるようになります。
- インスタンスをセカンダリ ノードにフェールオーバーして、新しい暗号化設定をフェールオーバー クラスター インスタンスに適用します。 フェールオーバー クラスター インスタンスがオンラインに失敗した場合は、
ClusterConnectionOptions
が正しく設定されていない可能性があります。 クラスターが SQL Server インスタンスに接続できない場合に関連する ODBC エラーのcluster.logを確認します。 必要に応じて、新しいセカンダリ ノードがオンラインになり、フェールオーバー クラスター インスタンスに接続された後、インスタンスを元のプライマリ ノードにフェールバックできます。 - (省略可能)さらに暗号化を適用するには、クラスター内の各ノードの接続プロトコルの SQL Server Configuration Manager プロパティで [
Yes
] オプションをに設定します。 この設定により、フェールオーバー クラスター インスタンスへのすべての接続で厳密な暗号化が使用されます。 セカンダリ ノードでこの変更を行い、インスタンスをフェールオーバーしてから、プライマリ ノードで変更を行います。
SQL Server Configuration Manager を使用して厳密な暗号化を強制する
SQL Server 2022 (16.x) 以降の SQL Server 構成マネージャーを使用して、厳密な暗号化を適用できます。 これを行うには、次のステップに従います。
SQL Server 構成マネージャーを開きます。
左側のウィンドウで、[ SQL Server ネットワークの構成] を展開し、[ InstanceName] の [プロトコル] を選択します。
TCP/IP を右クリックし、[プロパティ] を選択します。
[TCP/IP プロパティ] ダイアログで、[フラグ] タブに移動し、[厳密な暗号化を強制する] オプションで [はい] を選択します。
メンテナンス期間中に SQL Server インスタンスを再起動して、変更を適用します。
解説
SSL certificate validation failed
が表示されたら、次の点を検証します。
- サーバー証明書が、テストに使用しているマシン上で有効です
- 以下のうち少なくとも 1 つの条件を満たします。
- プロバイダー SQL Server が CA 名または証明書内の DNS 名のいずれかと一致します。
-
HostNameInCertificate
接続文字列プロパティが、CA 名または証明書内の DNS 名のいずれかと一致します。