この記事では、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 | イエス | イエス | オプション | 無視 | 運用環境での使用には、この方法はお勧めしません。 |
参加者一覧に含まれていない会社の証明書サーバー、または証明機関 (CA) から発行された証明書 - Microsoft 信頼されたルートプログラム - オプション 1 | イエス | いいえ | イエス | 無視 | |
会社の証明書サーバーまたは Microsoft 信頼されたルート プログラム - オプション 2の参加者リストに含まれていない証明機関 (CA) からの証明書を使用します。 | イエス | イエス | オプション | 無視 | |
信頼されたルート機関 | イエス | いいえ | オプション | 無視 | Microsoft ではこのアプローチを推奨しています。 |
特定のクライアントからの接続を暗号化する
証明書の種類 | サーバーのプロパティでの暗号化を強制する | 各クライアントでサーバー証明書をインポートする | クライアントで信頼サーバー証明書の設定を指定する | クライアント側で暗号化プロパティを Yes/True に手動で指定する | コメント |
---|---|---|---|---|---|
自己署名証明書 - 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 | いいえ | イエス | オプション | イエス | 運用環境での使用には、この方法はお勧めしません。 |
会社の証明書サーバー、または 参加者リストにない CA からの - Microsoft 信頼されたルートプログラム - オプション 1 | いいえ | いいえ | イエス | イエス | |
会社の証明書サーバー、または参加者の一覧に含まれていない CA からの 証明書サーバー - Microsoft 信頼されたルート プログラム - オプション 2 | いいえ | イエス | オプション | イエス | |
信頼されたルート機関 | いいえ | いいえ | オプション | イエス | Microsoft ではこのアプローチを推奨しています。 |
暗号化が機能しているかどうかを確認する方法
Microsoft ネットワーク モニターやネットワーク スニファーなどのツールを使用して通信を監視し、ツールでキャプチャされたパケットの詳細を確認して、トラフィックが暗号化されていることを確認できます。
または、Transact-SQL (T-SQL) コマンドを使用して、SQL Server 接続の暗号化状態を確認することもできます。 この手順を実行するには、以下のステップに従ってください。
- SQL Server Management Studio (SSMS) で新しいクエリ ウィンドウを開き、SQL Server インスタンスに接続します。
- 次の T-SQL コマンドを実行して、
encrypt_option
列の値を確認します。 暗号化された接続の場合、値はTRUE
されます。
SELECT * FROM sys.dm_exec_connections;