内核模式 SSL

Windows Server 2003 中引入了内核模式 SSL,Service Pack 1(SP1)支持有限。 对于使用 SP1 在 Windows Server 2003 上运行的计算机,必须将注册表项设置为启用内核 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 服务器 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 参数密钥下的两个注册表值进行配置:

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 禁用关闭通知要求。 关闭通知默认处于禁用状态。
启用关闭通知后,客户端应用程序需要在关闭 TCP 连接之前发送关闭通知消息。 HTTP 服务器 API 还会在关闭连接之前发送关闭通知。
启用关闭通知并客户端发送关闭通知消息时,HTTP 服务器 API 将在将来与客户端的连接上重复使用 SSL 会话。 如果客户端未发送关闭通知,HTTP 服务器 API 将不会在将来的连接上重复使用相同的 SSL 会话。 因此,在新连接上触发完整的 SSL 握手,从而减少性能。
注意: 启用关闭通知有助于缓解针对 HTTPS 请求和响应的截断攻击。
禁用关闭通知后,HTTP 服务器 API 将重复使用 SSL 会话以用于将来的连接。
DisableSslCertChainCacheOnlyUrlRetrieval DWORD 值,设置为 TRUE,使 HTTP 服务器 API 能够从 Internet 或本地存储检索中间证书,或 FALSE 仅从本地存储检索中间证书。 默认注册表值 FALSE
默认情况下,HTTP 服务器 API 通过从本地计算机帐户下的中间证书颁发机构存储检索中间证书来生成客户端证书链。 将此值设置为 TRUE 可使 HTTP 服务器 API 不仅从本地存储中检索中间证书,还可以从 Internet 上的中间证书颁发机构检索中间证书。