SQL Server およびクライアント暗号化の概要

この記事では、SQL Server に対する暗号化を可能にするためのさまざまなシナリオと関連する手順の概要と、暗号化が機能していることを確認する方法について説明します。

サーバーへのすべての接続を暗号化する (サーバー側暗号化)

証明書の種類 サーバー プロパティの [強制的に暗号化] 各クライアントでサーバー証明書をインポートする [サーバー証明書を信頼する] 設定 接続文字列の Encrypt プロパティ 説明
自己署名証明書 - SQL Server によって自動的に作成 はい 実行できません はい 無視 SQL Server 2016 (13.x) 以前のバージョンでは SHA1 アルゴリズムが使用されます。 SQL Server 2017 (14.x) 以降のバージョンでは SHA256 が使用されます。 詳細については、「SQL Server 2017 での自己署名証明書用のハッシュ アルゴリズムの変更」を参照してください。 この方法は、運用環境での使用にはお勧めしません。
New-SelfSignedCertificate または makecert を使用して作成された自己署名証明書 - オプション 1 はい いいえ はい 無視 この方法は、運用環境での使用にはお勧めしません。
New-SelfSignedCertificate または makecert を使用して作成された自己署名証明書 - オプション 2 はい はい 省略可能 無視 この方法は、運用環境での使用にはお勧めしません。
会社の証明書サーバー、または参加者の一覧 - Microsoft の信頼されたルート プログラムにない証明機関 (CA) から - オプション 1 はい いいえ はい 無視
会社の証明書サーバー、または参加者の一覧 - Microsoft の信頼されたルート プログラムにない証明機関 (CA) から - オプション 2 はい はい 省略可能 無視
信頼されたルート機関 はい × 省略可能 無視 Microsoft ではこのアプローチを推奨しています。

特定のクライアントからの接続を暗号化する

証明書の種類 サーバー プロパティの [強制的に暗号化] 各クライアントでサーバー証明書をインポートする クライアントで [サーバー証明書を信頼する] 設定を指定する クライアント側で暗号化プロパティを Yes/True に手動で指定する 説明
自己署名証明書 - SQL Server によって自動的に作成 はい 実行できません はい 無視 SQL Server 2016 (13.x) 以前のバージョンでは SHA1 アルゴリズムが使用されます。 SQL Server 2017 (14.x) 以降のバージョンでは SHA256 が使用されます。 詳細については、「SQL Server 2017 での自己署名証明書用のハッシュ アルゴリズムの変更」を参照してください。 この方法は、運用環境での使用にはお勧めしません。
New-SelfSignedCertificate または makecert を使用して作成された自己署名証明書 - オプション 1 いいえ いいえ Yes はい この方法は、運用環境での使用にはお勧めしません。
New-SelfSignedCertificate または makecert を使用して作成された自己署名証明書 - オプション 2 いいえ はい 省略可能 はい この方法は、運用環境での使用にはお勧めしません。
会社の証明書サーバー、または「参加者の一覧 - Microsoft の信頼されたルート プログラム」にない CA から - オプション 1 いいえ いいえ Yes はい
会社の証明書サーバー、または「参加者の一覧 - Microsoft の信頼されたルート プログラム」にない CA から - オプション 2 いいえ はい 省略可能 はい
信頼されたルート機関 いいえ × 省略可能 はい Microsoft ではこのアプローチを推奨しています。

暗号化が機能しているかどうかを確認する方法

Microsoft ネットワーク モニターやネットワーク スニファーなどのツールを使用して通信を監視し、ツールでキャプチャされたパケットの詳細を確認して、トラフィックが暗号化されていることを確認できます。

または、Transact-SQL (T-SQL) コマンドを使用して、SQL Server 接続の暗号化状態を確認することもできます。 その手順は次のとおりです。

  1. SQL Server Management Studio (SSMS) で新しいクエリ ウィンドウを開き、SQL Server インスタンスに接続します。
  2. 次の T-SQL コマンドを実行して、encrypt_option 列の値を確認します。 暗号化された接続の場合、値は TRUE になります。
SELECT * FROM sys.dm_exec_connections

関連項目

次のステップ