[プロトコルの暗号化を設定する] オプションが有効になっている場合の SQL Server における証明書の使用

概要
この資料では、クライアントまたはサーバーのいずれかで、Net-Library 暗号化を有効にする [プロトコル暗号化を設定する] オプションが有効になっている場合に、SQL Server で証明書の使用、検索、および検証がどのように行われるかについて説明します。

: この資料で説明されている内容のうち、SQL Server 2000 に適用されるものは、SQL Server 2005 に対しても適用されます。ただし、SQL Server 2005 では、[プロトコル暗号化を設定する] オプションの代わりに [ForceEncryption] オプションを使用します。[ForceEncryption] オプションの値を "はい" に設定すると、SQL Server のインスタンスに対する暗号化接続が有効になります。詳細については、SQL Server 2005 Books Online の「データベース エンジンへの暗号化接続を有効にする方法 (SQL Server 構成マネージャ)」を参照してください。
詳細

SQL Server における証明書の使用

SQL Server 2000 は、Net-Library 暗号化を制御するための [プロトコル暗号化を設定する] オプションをサポートしています。[プロトコル暗号化を設定する] オプションがオンになっている場合、SQL Server は、SSL (Secure Sockets Layer) を使用してクライアントと SQL Server サーバー間のすべての通信を暗号化します。SSL 暗号化は公的な証明機関から割り当てられた証明書がインストールされているコンピュータで実行されている SQL Server 2000 のインスタンスでのみ動作するため、証明書が必要です。関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
276553 [HOWTO] 証明書サーバーのある環境で SQL Server 2000 のために SSL 暗号化を有効にする方法
SQL Server 2000 用に SSL 暗号化を有効にする方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
316898 Microsoft 管理コンソールで SQL Server 2000 用に SSL 暗号化を有効にする方法
クライアントで SQL Server クライアント ネットワーク ユーティリティを使用して [プロトコル暗号化を設定する] オプションをオンにした場合、そのクライアントでは SQL Server への通信のみが暗号化されます。そのクライアントが、SQL Server を実行している他のコンピュータに接続するときには、通信の暗号化が試行されます。クライアントで [プロトコル暗号化を設定する] オプションがオンになっている場合、そのクライアントには下位互換性がありません。そのため、そのクライアントは、Microsoft SQL Server 6.5 または Microsoft SQL Server 7.0 に接続することはできません。クライアントの接続先となる SQL Server を実行しているコンピュータに証明書がインストールされていない場合、クライアントに次のエラー メッセージが表示されます。

暗号化は SQL Server でサポートされていません
そのため、クライアントが暗号化を要求する場合、SQL Server を実行しているコンピュータに証明書がインストールされている必要があります。SQL Server を実行しているコンピュータに証明書をインストールした後、証明書を使用するためには SQL Server を再起動する必要があります。証明書のインストール後に SQL Server を再起動しないと、暗号化が有効になっているクライアントは接続に失敗し、同じエラー メッセージが表示されます。

暗号化は SQL Server でサポートされていません
サーバーでサーバー ネットワーク ユーティリティを使用して [プロトコル暗号化を設定する] オプションをオンにした場合、すべてのクライアントと SQL Server 間の通信が暗号化されます。そのため、SQL Server を実行しているコンピュータに証明書がインストールされていない場合、または SQL Server で証明書を検証できない場合、SQL Server の起動は失敗します。SQL Server のエラー ログに次のテキストが出力されます。

2001-08-23 15:12:09.48 server 暗号化が要求されましたが、有効な資格証明が見つかりませんでした。SQL Server を終了しています。
2001-08-23 15:12:09.62 server エラー : 17826、レベル : 18、状態 : 1
2001-08-23 15:12:09.62 server 'SSNETLIB' をセットアップできませんでした。
2001-08-23 15:12:09.67 server エラー : 17059、レベル : 18、状態 : 0
2001-08-23 15:12:09.67 server オペレーティング システム エラー -1073723998:
2001-08-23 15:12:09.67 server Net-Library をロードできませんでした。
2001-08-23 15:12:09.74 server SQL Server は FRunCM スレッドを起動できませんでした。

SQL Server における証明書の検索

SQL Server 2000 golden release の場合、SQL Server は、証明書ストアから SQL Server コンピュータ名の完全修飾ドメイン名 (FQDN: Fully Qualified Domain Name) と同じ名前を持つ証明書を探します。フェールオーバー クラスタを使用して SQL Server を配置する場合は、フェールオーバー クラスタ上のすべてのノードに仮想サーバーの FQDN を持つサーバー証明書をインストールする必要があります。

Microsoft SQL Server 2000 Service Pack 1 以降では、次のレジストリ キーの Certificate という名前のバイナリ値が検索されます。
HKLM\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib
SQL Server 2005 を使用している場合、Certificate レジストリ キーは次のレジストリ サブキーの下にあります。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\SuperSocketNetLib


: MSSQL.x には、SQL Server インスタンスの対応する値が入ります。

証明書の値が存在しないか、長さが 0 の文字列に設定されている場合、証明書ストア内で、SQL Server コンピュータ名の FQDN と同じ名前を持つ証明書が検索されます。レジストリ値が設定されている場合は、その証明書が使用されます。

SQL Server における証明書の有効性の検証

  • 証明書の [拡張キー使用法] プロパティで Server Authentication が有効になっている必要があります。証明書がサーバー認証に使用されるかどうかを確認するには、[証明書] Microsoft 管理コンソール (MMC) スナップインを使用します。証明書名をダブルクリックし、[詳細設定] を選択します。[拡張キー使用法 (プロパティ)] をクリックし、値が次のようになっていることを確認します。
        Server Authentication(1.3.6.1.5.5.7.3.1). 
  • 証明書名が、SQL Server の FQDN、または (前述の) レジストリで設定されている値と同じであることを確認します。
  • 証明書は、SQL Server の起動アカウントでログオンしているときに、Certificates - Current User \Personal フォルダにインストールする必要があります。これにより、証明書は確実に SQL Server の起動アカウントの Personal Certificates フォルダに配置されます。SQL Server の起動アカウント以外のユーザー アカウントでログオンしている場合は、Certificates\Local Computer Personal Certificates フォルダに証明書を配置します。この方法により、適切でないユーザー アカウントで証明書が格納された場合の問題が解決されます。

    [現在のユーザー] フォルダを表示するには、次の手順を実行します。
    1. SQL Server の起動アカウントでログオンします。
    2. MMC の [証明書] スナップインを使用して、証明書の場所を確認します。
certificate encrypt
プロパティ

文書番号:318605 - 最終更新日: 02/06/2006 08:17:23 - リビジョン: 7.1

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbinfo KB318605
フィードバック