[HOWTO] 証明書サーバーのある環境で SQL Server 2000 のために SSL 暗号化を有効にする方法

文書翻訳 文書翻訳
文書番号: 276553 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

この資料では、使用しているネットワーク環境に正規の証明書サーバーがある場合に、SQL Server 2000 の SSL 暗号化を使用するために必要な手順を、順を追って説明します。サードパーティの証明書ベンダから証明書を購入した場合は、ベンダから提供されている手順に従ってください。SQL Server では、証明書と SSL (Secure Socket Layer) 暗号化を使用することにより、すべてのネットワーク ライブラリの接続を暗号化することができます。SQL Server の暗号化は、SuperSocket Net-Library、Ssnetlib.dll、または Dbnetlib.dll を使用して行うことができます。

SQL Server クラスタで SSL 暗号化を使用する場合は、同じ手順を使用することができます。ただし、仮想 SQL Server の個別のコンピュータ名ではなく、完全修飾ドメイン名に対して証明書を発行する必要がある点が異なります。また、マイクロソフトが推奨している、SQL Server クラスタにおける証明書と SSL 暗号化の使用法は以下のとおりです。
  1. 証明書をクラスタのすべてのノードにインストールします。
  2. 信頼されたルート証明機関をすべてのクライアントにインストールします。
  3. クライアント コンピュータでクライアント ネットワーク ユーティリティを実行し、[プロトコルの暗号化を設定する] チェック ボックスをオンにします。
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
319349 BUG: Turning On the 'Force Protocol Encryption' Option Is Irreversible If There Is No Certificate

クライアント コンピュータとサーバーとの間の通信を暗号化するには、サーバーごとの暗号化を行うか、またはクライアント ベースの暗号化を行うかを最初に決定する必要があります。サーバーごとの暗号化を行う場合、現状では SQL Server に制限があることを念頭に置く必要があります。この場合、暗号化は着信方向の接続に対して行われます。クライアント コンピュータで暗号化を行う場合は、そのクライアントからのすべての送信接続で、すべての SQL Server に対して暗号化接続の確立が試行されます。

また、サーバーで [プロトコル暗号化を設定する] チェック ボックスをオンにした場合は、ログインとデータが暗号化されます。しかし、この設定を使用する場合、クライアントが信頼するルート証明機関はサーバーが信頼するルート証明機関と同じである必要はありません。クライアントがサーバーと同じルート証明機関を信頼する必要がある場合は、クライアント ネットワーク ユーティリティまたは接続文字列のオプションを使用して、クライアントで強制的にプロトコルの暗号化を行う必要があります。これは SQL Server の仕様です。

証明書が無効な場合、または MSSQLServer サービスの起動に使用されるアカウントが証明書を見つけられない場合、SQL Server は開始しません。このため、マイクロソフトでは、MSSQLServer サービスの起動に使用されるユーザー アカウントと同じアカウントを使用してログオンしているときに証明書を要求することをお勧めします。

SQL Server を実行しているコンピュータに Microsoft インターネット インフォメーション サービス (IIS) がインストールされている場合は、[ディレクトリ セキュリティ] タブの サーバー証明書ウィザードを使用することもできます。使用する証明書は、サーバーの完全修飾ドメイン名 (FQDN) に対して発行されたサーバー証明書である必要があります。証明書の名前に IP アドレスを使用することはできません。クライアント コンピュータからサーバーへの接続を要求するときには、サーバーの FQDN または NetBIOS 名を使用する必要があります。SQL Server を実行しているコンピュータの IP アドレスを使用してサーバーに接続することはできません。

コンピュータのユーザー ストアまたはコンピュータ ストアに複数の証明書がインストールされている場合は、SQL Server で使用する証明書を指定する必要が生じることがあります。

以下のレジストリ キーを作成し、証明書の "拇印" フィールドの値を入力します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib

この証明書で使用する値の種類は REG_BINARY です。このレジストリ値が 0 (ゼロ) に設定されていると、そのコンピュータに保存されている証明書は使用されません。SQL Server を実行しているコンピュータは起動しますが、そのコンピュータに保存されている証明書は読み取られません。暗号化を使用する必要があり、コンピュータに証明書を 1 つしか置かない場合は、このレジストリ値を設定する必要はありません。

暗号化接続が確立したことを確認する唯一の方法は、Microsoft ネットワーク モニタや Network Sniffer ツールを使用して 2 台のコンピュータの間のトラフィックをキャプチャすることです。 Microsoft ネットワーク モニタの使用方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
243270Windows 2000 にネットワーク モニタをインストールする方法

証明書サーバーを使用して証明書の要求とインストールを行う

  1. MSSQLServer サービスの開始に使用するアカウントと同じユーザー アカウントを使用してログオンし、その状態で証明書サーバーに HTTP 接続します。たとえば、以下のような HTTP 接続を行うことができます。
    http://mycertserver/certsrv/
    : マイクロソフトでは、MSSQLServer サービスを開始するときのアカウントとして、権限を最小限に抑えたドメイン ユーザー アカウントまたはローカル ユーザー アカウントを使用することをお勧めします。localsystem アカウントを使用することはお勧めしません。
  2. [証明書の要求] をクリックし、[次へ] をクリックします。
  3. [要求する種類の選択] で、[要求の詳細設定] をクリックし、[次へ] をクリックします。
  4. [フォームを使用してこの CA へ証明書の要求を送信します。] をクリックし、[次へ] をクリックします。
  5. 使用しているコンピュータの完全修飾ドメイン名を [名前] ボックスに入力します。コンピュータの完全修飾ドメイン名がわからない場合は、そのコンピュータに対して Ping コマンドを実行して確認します。
  6. [目的] で、[クライアント認証証明書] が表示されているボックスの [サーバー認証証明書] をクリックします。
  7. その他の項目はデフォルトのままとし、[送信] をクリックします。
  8. 最後に表示されるページに、[この証明書のインストール] ハイパーリンクが表示されます。[この証明書のインストール] をクリックします。
証明書が正しくインストールされたことを確認するには、証明書 MMC スナップイン、または証明書サーバーにインストールされている CertUtil.exe ツールを使用して証明書を一覧表示します。証明書 MMC スナップインを読み込むには、次の手順を実行します。
  1. MMC コンソールを開くには、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  2. [ファイル名を指定して実行] ダイアログ ボックスに mmc と入力し、[OK] をクリックします。
  3. [コンソール] メニューの [スナップインの追加と削除] をクリックします。
  4. [追加] をクリックし、[証明書] をクリックします。
  5. [追加] をクリックします。

    開くスナップイン (ユーザー アカウント用、サービス アカウント用、コンピュータ アカウント用) を確認するダイアログ ボックスが表示されます。
  6. [コンピュータ アカウント] をクリックします。[次へ] をクリックします。
  7. [ローカル コンピュータ] をクリックし、[完了] をクリックします。
  8. [閉じる] をクリックします。
  9. [OK] をクリックします。

    インストールされた証明書は、[個人] の下にある [証明書] フォルダに表示されます。
インストールされた証明書をダブルクリックし、以下の条件が満たされていることを確認します。
  • この証明書に対応する秘密キーがあります。
  • 証明書の "サブジェクト" フィールドが、コンピュータの完全修飾ドメイン名になっています。
  • 証明書の利用目的がサーバー認証になっています。
  • [証明書のパス] に、ルート証明機関への正規のチェーンが表示されています。

SQL Server の SSL 暗号化を有効にする

証明書をサーバーにインストールした後、次の手順を実行することによって SSL 暗号化を有効にすることができます。
  1. SQL Server ネットワーク ユーティリティを起動し、[プロトコル暗号化を設定する] チェック ボックスをオンにします。
  2. 既定のインスタンスまたは名前付きインスタンスの MSSQLServer サービスを停止し、再起動します。
  3. SQL Server エラー ログを参照して、SQL Server の開始時にエラーが発生していないことを確認します。

特定のクライアントで SSL 暗号化を有効にする

SSL 暗号化をそのサーバー全体では有効にせず、一部でのみ有効にする場合は、特定のクライアントに対して SSL 暗号化を有効にできます。SSL 暗号化はサーバーとクライアントの両方で有効にするのではなく、いずれか一方でのみ有効にします。クライアント ベースで SSL 暗号化を行う場合、使用するサーバー証明書はクライアント コンピュータで信頼される必要があります。この証明書は、サーバー上に既に存在している必要もあります。クライアント コンピュータでは証明書を必要としませんが、信頼されたルート証明機関としてサーバー証明書を持つ必要があります。クライアント ベースで SSL 暗号化を有効にするには、次の手順を実行します。

  1. サーバー ネットワーク ユーティリティで [プロトコル暗号化を設定する] チェック ボックスがオフになっていることを確認します。
  2. ネットワーク モニタまたは Network Sniffer ツールを使用して、クライアント コンピュータからの接続をテストし、クライアント コンピュータとサーバー コンピュータとの間の通信が暗号化されていないことを確認します。
  3. SQL Server を実行しているコンピュータのデスクトップにある [Internet Explorer] アイコンを右クリックします。
  4. [プロパティ] をクリックします。
  5. [コンテンツ] タブをクリックします。
  6. [証明書] をクリックします。
  7. [信頼されたルート証明機関] タブをクリックします。
  8. 証明機関をクリックします。
  9. [エクスポート] をクリックし、[次へ] をクリックします。
  10. [エクスポート ファイルの形式] で、[Cryptographic Message Syntax Standard - PKCS #7 証明書 (.P7B)] をクリックします。
  11. [証明のパスにある証明書を可能であればすべて含む] チェック ボックスをオンにします。[次へ] をクリックします。
  12. エクスポートする証明書のファイル名を入力します。ファイルをエクスポートする場所は、後でクライアント コンピュータからアクセスして証明書をインポートできる場所を指定します。
  13. [次へ] をクリックし、[完了] をクリックします。
  14. クライアント コンピュータで [Internet Explorer] アイコンを右クリックし、[プロパティ] をクリックします。次に、[コンテンツ] タブをクリックし、[証明書] をクリックします。
  15. [信頼されたルート証明機関] タブをクリックします。
  16. [インポート] をクリックし、[次へ] をクリックします。[参照] をクリックし、[ファイルの種類] ボックスの一覧の [PKCS #7 証明書 (*.spc,*.p7b)] をクリックします。
  17. SQL Server からエクスポートした証明書をクリックし、[開く] をクリックします。[次へ] をクリックします。
  18. [証明書の種類に基づいて、自動的に証明書ストアを選択する] をクリックします。
  19. [YES] をクリックして、次の証明書をルート ストアに追加します。
  20. [次へ] をクリックし、[完了] をクリックします。
  21. 次のメッセージが表示されます。
    正しくインポートされました。
  22. インポートした証明書が [信頼されたルート証明機関] タブに表示されていること、および [証明書の目的] にすべての項目が表示されていることを確認します。
  23. [表示] をクリックし、証明書のエラーが表示されないことを確認します。
  24. [証明のパス] タブをクリックし、[証明書の状態] に "この証明書は問題ありません。" と表示されていることを確認します。
  25. クライアント ネットワーク ユーティリティを起動し、[プロトコルの暗号化を設定する] チェック ボックスをオンにします。

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

クライアントからの暗号化接続のテストには、以下のいずれかのツールを使用できます。
  • クエリ アナライザ ツール

  • 接続文字列を変更できる ODBC アプリケーション
クエリ アナライザ

SQL クエリ アナライザを使用してテストを行うには、次の手順を実行します。
  1. SQL Server のクライアント ネットワーク ユーティリティを起動します。
  2. [プロトコルの暗号化を設定する] チェック ボックスをオンにします。
  3. クエリ アナライザを起動し、SQL Server 2000 を実行しているサーバーに接続します。
  4. Microsoft ネットワーク モニタまたは Network Sniffer を使用して、通信を監視します。
ODBC アプリケーション

ODBC アプリケーションを使用してテストを行うには、次の手順を実行します。
  1. ODBC または OLEDB の接続文字列を次のように変更します。

    ODBC
    Driver=SQLServer;Server=ServerNameHere;UID=UserIdHere;PWD=PasswordHere;Network=DBNETLIB.DLL;Encrypt=YES
    						

    OLEDB
    Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=dbNameHere;Data Source=ServerNameHere;Use Encryption for Data=True
  2. SQL Server 2000 を実行しているサーバーに接続し、Microsoft ネットワーク モニタまたは Network Sniffer を使用して通信を監視します。

関連情報

316898 HOW TO: Enable SSL Encryption for SQL Server 2000 Using MMC

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 276553 (最終更新日 2004-03-12) を基に作成したものです。

この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。

プロパティ

文書番号: 276553 - 最終更新日: 2004年5月24日 - リビジョン: 8.1
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64 bit (all editions)
キーワード:?
kbhowtomaster KB276553
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com