SQL Server への接続を暗号化するための特殊なケース

クライアント コンピューターではクライアントが SSL 暗号化を要求できるようにサーバー証明書を信頼する必要があり、その証明書はサーバー上に既に存在している必要があります。 SQL Server 暗号化の最も一般的なシナリオには、次のような環境が必要です。

  • SQL Server へのすべての着信クライアント接続に対して暗号化を強制に行います。
  • Windows で既に信頼されている公的な商用証明機関からの証明書を使用します。 CA に対応するルート証明書は、ご利用のネットワーク内のすべてのコンピューターに対する信頼されたルート証明機関の証明書ストアにインストールされます。

このシナリオでは、暗号化のための SQL Server の構成に関するページに記載の手順に従って暗号化のために SQL Server を構成したら、暗号化を成功させるために追加のステップを行う必要はありません。 この記事では、暗号化のための SQL Server の構成に関するページに記載されていないあまり一般的でないシナリオについて、SQL Server への接続を暗号化する手順を説明します。

Note

Microsoft の信頼されたルート プログラムの参加者の完全な一覧については、参加者リスト - Microsoft の信頼されたルート プログラムに関するページを参照してください。

公的な商用証明機関によって発行された証明書を使用し、一部のクライアントのみで暗号化された接続が必要とされる

  1. 証明書を使用できるように SQL Server を構成する」に記載されている手順に従って、SQL Server 上で証明書を構成します。
  2. 接続プロパティ内で暗号化キーワードを [Yes] または [True] に指定します。 たとえば、Microsoft ODBC Driver for SQL Server を使用している場合、接続文字列には Encrypt=yes; を指定する必要があります。

内部 CA によって発行された証明書、または New-SelfSignedCertificate もしくは makecert を使用して作成された証明書を使用する

シナリオ 1: SQL Server へのすべての接続を暗号化する

暗号化のための SQL Server の構成に関するページに示す「ステップ 1: 証明書を使用できるように SQL Server を構成する」と「ステップ 2: SQL Server 内で暗号化の設定を構成する」に記載されている手順を両方とも完了したら、次のいずれかのオプションを使用して、ご利用のクライアント アプリケーションを暗号化に対応するように構成します。

オプション 1: サーバー証明書を信頼するようにクライアント アプリケーションを構成します。 この設定を使用すると、クライアントはサーバー証明書を検証するステップをスキップして、暗号化プロセスを続行します。 たとえば、SQL Server Management Studio を使用している場合は、[オプション] ページにある [サーバー証明書を信頼する] を選択できます。

オプション 2: 各クライアント上で次のステップを行って、証明書の発行元の証明機関を、信頼されたルート証明機関ストアに追加します。

  1. サーバー証明書のエクスポートに関する記事に記載されている手順を使用して、SQL Server を実行しているコンピューターから証明書をエクスポートします。
  2. プライベート証明機関 (CA) を信頼されたルート証明機関の証明書ストアに追加に関するページに記載されている手順を使用して、証明書をインポートします。

シナリオ 2: 一部のクライアントのみが暗号化された接続を必要とする

暗号化のための SQL Server の構成に関する記事の「ステップ 1: 証明書を使用できるように SQL Server を構成する」の説明に従って、SQL Server で使用できるように証明書を構成したら、次のいずれかのオプションを使用して、暗号化に対応するようにクライアント アプリケーションを構成します。

オプション 1: サーバー証明書を信頼するようにクライアント アプリケーションを構成し、接続プロパティ内の暗号化キーワードを Yes または True に指定します。 たとえば、Microsoft ODBC Driver for SQL Server を使用している場合、接続文字列には Encrypt=yes;Trust Server Certificate =Yes; を指定する必要があります。

サーバー証明書と暗号化の詳細については、「TrustServerCertificate の使用」を参照してください。

オプション 2: 各クライアント上で、証明書の発行元の証明機関を信頼されたルート証明機関ストアに追加し、接続文字列内で暗号化パラメーターを [Yes] に指定します。

  1. SQL Server を実行しているコンピューターからのサーバー証明書のエクスポートに関する記事に記載されている手順を使用して、SQL Server を実行しているコンピューターから証明書をエクスポートします。
  2. 証明書をインポートします
  3. 接続プロパティ内で暗号化キーワードを [Yes] または [True] に指定します。 たとえば、Microsoft OLEDB Driver for SQL Server を使用している場合、接続文字列には Use Encryption for Data = True; を指定する必要があります。

SQL Server によって自動的に作成された自己署名証明書を使用する

シナリオ 1: SQL Server へのすべての着信接続を暗号化する

  1. 暗号化のための SQL Server の構成に関する記事に記載されている手順「ステップ 2: SQL Server 内で暗号化の設定を構成する」を使用して、SQL Server に対する暗号化を有効にします。

  2. サーバー証明書を信頼するようにクライアントを構成します。 サーバー証明書を認証すると、クライアントはサーバー証明書を検証するステップをスキップして、暗号化プロセスを続行します。 たとえば、SQL Server Management Studio を使用している場合は、[オプション] ページにある [サーバー証明書を信頼する] を選択できます。

シナリオ 2: 一部のクライアントのみが暗号化された接続を必要とする

サーバー証明書を信頼するようにクライアント アプリケーションを構成し、接続プロパティ内の暗号化キーワードを Yes または True に指定します。 たとえば、Microsoft ODBC Driver for SQL Server を使用している場合、接続文字列には Encrypt=yes;Trust Server Certificate =Yes; を指定する必要があります。

警告

自己署名証明書を使用して暗号化された SSL 接続では、強力なセキュリティを実現できません。これは、自己署名証明書のキーの長さが、CA によって生成された証明書のキーの長さよりも短いためです。 man-in-the-middle (中間者) 攻撃を受ける可能性が高くなります。 運用環境や、インターネットに接続されているサーバーでは、自己署名証明書を使用した SSL に依存しないでください。

Note

このシナリオでは、SQL Server に追加の構成は必要ありません。

次のステップ