カーネル モード SSL

カーネル モード SSL は、Windows Server 2003 Service Pack 1 (SP1) で導入され、サポートが制限されています。 Windows Server 2003 で SP1 を実行しているコンピューターでは、カーネル SSL を有効にするためにレジストリ キーを設定する必要があります。 Windows Server 2008 および Windows Vista で実行されているコンピューターの場合、SSL のカーネル モードの完全なサポートが提供されます。

次のセクションでは、カーネル モード SSL のサポートについて説明します。

  • Windows Server 2003 SP1 でのカーネル モード SSL
  • Windows Server 2008 および Windows Vista のカーネル モード SSL

Windows Server 2003 SP1 でのカーネル モード SSL

WINDOWS Server 2003 SP1 では、HTTP Server API はカーネル モードで SSL セキュリティを実行するオプションを提供します (ユーザー モード SSL が既定です)。 カーネル モード機能は、暗号化と暗号化解除の操作をカーネルに移動することで SSL のパフォーマンスを向上させ、カーネル モードとユーザー モード間の遷移の数を減らします。

SSL がカーネル モードで実行されている場合、次の機能はサポートされません。

  • クライアント証明書
  • RC2 暗号
  • PCT 1.0 プロトコル
  • サーバー証明書の構成の変更には、HTTP サービスの再起動が必要です
  • 一括暗号化とオフロードのサポート

カーネル モード SSL の構成

カーネル モード SSL は、EnableKernelSSL レジストリ値によって制御され、値を 1 に設定することで有効になります。 カーネル モード SSL を有効にすると、ユーザー モード SSL が無効になり、HTTP サービスを再起動して有効にする必要があります。 EnableKernelSSL レジストリ キーは次の場所にあります。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\パラメーター\EnableKernelSSL

Windows Server 2008 および Windows Vista のカーネル モード SSL

Windows Server 2008 および Windows Vista で実行されているコンピューターの場合、HTTP Server API は SSL 機能を強化しています。

次の新機能がサポートされています。

  • カーネル モード SSL での完全なクライアント証明書のサポート
  • すべての HTTP SSL トランザクションのカーネル モード SSL
  • 一括暗号化とオフロードのサポート
  • PCT 1.0 プロトコル
  • RC2 暗号
  • ユーザー モード SSL でのパフォーマンスの向上

構成

カーネル モード SSL は、次の場所にある HTTP パラメーター キーの下にある 2 つのレジストリ値を使用して構成できます。

HKEY_LOCAL_MACHINE
   System
      CurrentControlSet
         Services
            HTTP
               Parameters
                  EnableSslCloseNotify
                  DisableSslCertChainCacheOnlyUrlRetrieval

ユーザーは、レジストリ値を変更したり、ログ ファイルとそのファイルを含むフォルダーを表示または変更したりするには、管理者/ローカル システム権限を持っている必要があります。

レジストリ値の構成情報は、HTTP サーバー API ドライバーの起動時に読み取られます。 その結果、設定が変更された場合、ドライバーを停止し、再起動して新しい値を読み取る必要があります。 これを行うには、次のコンソール コマンドを使用します。

net stop http

net start http

次の表に、レジストリの構成値を示します。

レジストリ値 形容
EnableKernelSSL Windows Server 2008 および Windows Vista: このレジストリ値は廃止されています。
EnableSslCloseNotify DWORD 値。TRUE に設定され、近い通知を有効にするか、FALSE して、通知の終了要件を無効にします。 Close-notify は既定で無効になっています。
close-notify が有効になっている場合、クライアント アプリケーションは、TCP 接続を閉じる前に、クローズ通知メッセージを送信する必要があります。 また、HTTP サーバー API は、接続を閉じる前にクローズ通知を送信します。
close-notify が有効になっており、クライアントがクローズ通知メッセージを送信すると、HTTP サーバー API は、クライアントへの今後の接続で SSL セッションを再利用します。 クライアントがクローズ通知を送信しない場合、HTTP サーバー API は今後の接続で同じ SSL セッションを再利用しません。 したがって、新しい接続で完全な SSL ハンドシェイクがトリガーされるため、パフォーマンスが低下します。
注: 近接通知を有効にすると、HTTPS 要求と応答に対する切り捨て攻撃を軽減できます。
Close-notify が無効になっている場合、HTTP Server API は今後の接続のために SSL セッションを再利用します。
DisableSslCertChainCacheOnlyUrlRetrieval DWORD 値。TRUE に設定され、HTTP Server API がインターネットまたはローカル ストアから中間証明書を取得できるようにするか、FALSE してローカル ストアからのみ中間証明書を取得できるようにします。 既定のレジストリ値は FALSE です。
既定では、HTTP Server API は、ローカル コンピューター アカウントの中間証明機関ストアから中間証明書を取得することで、クライアント証明書チェーンを構築します。 この値を TRUE に設定すると、HTTP Server API はローカル ストアからだけでなく、インターネット上の中間証明機関からも中間証明書を取得できます。