如果您需要在网站上的客户端证书,或者如果您在 Windows Server 2003 中使用 IAS,客户端无法建立连接

文章翻译 文章翻译
文章编号: 933430 - 查看本文应用于的产品
重要本文包含有关如何修改注册表的信息。请确保您对其进行修改之前备份注册表。请确保您知道如何还原注册表发生问题。有关如何备份、 还原,以及修改注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986在 Microsoft Windows 注册表的说明
展开全部 | 关闭全部

本文内容

症状

请考虑以下方案。

方案 1

  • 您有一个 Microsoft Internet Information Services (IIS) 6.0 使用安全套接字层 (SSL) 协议来加密客户端连接的 Web 站点。
  • WebSiteName 属性 对话框中的 安全通信 对话框中选中 要求客户端证书 选项。
在这种情况下,您可能会遇到以下症状:
  • 客户端无法成功地连接到网站。
  • 下面的警告事件登录到基于 Microsoft Windows Server 2003 的计算机,承载该 Web 站点:

    事件类型: 警告
    事件源: Schannel
    事件类别: 无
    事件 ID: 36885
    Date: date
    Time: time
    用户:
    计算机: COMPUTERNAME
    描述: 要求客户端身份验证时, 此服务器的受信任的证书颁发机构列表向客户端发送。客户端使用此列表中选择受信任的服务器的客户端证书。当前,此服务器信任这么多的证书颁发机构列表中已变得太长。此列表因此已被截断。此计算机的管理员应该检查受信任的客户端身份验证该证书颁发机构并删除那些不真正需要受信任的。

注意默认状态下,没有登录安全通道 (Schannel) 警告事件。有关如何配置的详细信息的 Schannel 事件日志记录请参阅"更多信息"部分。

方案 2

您使用基于 Microsoft Windows Server 2003 的计算机运行 Microsoft Internet 验证服务 (IAS) 支持的无线网络的身份验证的。在这种情况下,您可能会遇到以下症状:
  • IAS 服务器不能成功地对该客户端进行身份验证。 因此,无线客户端计算机无法连接到无线网络成功。
  • 类似于以下内容的警告事件记录在 IAS 服务器上:

    事件类型: 警告
    事件来源: IAS
    事件类别: 无
    事件 ID: 2
    Date: date
    Time: time
    用户:
    计算机: COMPUTERNAME
    说明: 用户 jsmith@contoso.com 被拒绝访问。
    完全-合格--用户名 = CONTOSOS\jsmith NAS IP 地址 = 10.20.30.40
    NAS 标识符 = WL1234 1
    调用站标识符 = 0016.462c.1650
    电话-站标识符 = 0012.f05b.a795
    客户端的好记名称 = WL1234 1
    客户端 IP 地址 = 10.20.30.40
    NAS 端口类型 = 无线-IEEE 802.11
    NAS 端口 = 10037 代理-策略-名称 = 使用 Windows 身份验证的所有用户
    身份验证提供程序 = Windows
    身份验证服务器 = <undetermined>
    策略名称 = 无线网络访问策略
    身份验证类型 = EAP
    EAP 类型 = 智能卡或其他证书
    原因代码 = 266
    原因 = 收到的消息是意外的或不正确格式化。
    有关详细的信息在 http://go.microsoft.com/fwlink/events.asp 看到帮助和支持中心。
    数据: 0000: 26 03 09 80 和...吗?

  • 可能会类似于下面的警告事件的事件记录在 IAS 服务器上:

    事件类型: 警告
    事件源: Schannel
    事件类别: 无
    事件 ID: 36885
    Date: date
    Time: time
    用户:
    计算机: COMPUTERNAME
    描述: 要求客户端身份验证时, 此服务器的受信任的证书颁发机构列表向客户端发送。客户端使用此列表中选择受信任的服务器的客户端证书。当前,此服务器信任这么多的证书颁发机构列表中已变得太长。此列表因此已被截断。此计算机的管理员应该检查受信任的客户端身份验证该证书颁发机构并删除那些不真正需要受信任的。

注意默认状态下,没有登录安全通道 (Schannel) 警告事件。有关如何配置的详细信息的 Schannel 事件日志记录请参阅"更多信息"部分。

原因

如果 Web 服务器或 IAS 服务器中包含受信任的根证书列表中的多个条目,则可能会出现此问题。服务器发送到客户端的受信任的证书颁发机构的列表,如果满足下列条件,则:
  • 服务器使用传输层安全性 (TLS) / SSL 来加密网络通信协议。
  • 客户端证书所需的身份验证握手过程中的身份验证。
此列表中的受信任的证书颁发机构代表主管机构的服务器可以接受客户端证书。若要进行服务器身份验证,客户端必须具有从服务器的列表都存在的证书链中根证书的证书。

目前,Schannel 安全软件包支持的受信任的证书颁发机构列表的最大大小是 12,228 (0x3000) 个字节。

Schannel 通过搜索本地计算机上受信任的根证书颁发机构存储区中创建受信任的证书颁发机构的列表。每个客户端身份验证的受信任的证书添加到列表中。如果此列表的大小超过了 12,228 字节,Schannel 将记录警告事件 ID 36855。然后,Schannel 截断的受信任的根证书的列表,并将此截断的列表发送到客户端计算机。

当该客户机将收到受信任的根证书的截断的列表时,客户端计算机可能没有在受信任的证书颁发者的链中存在的证书。例如对于客户端计算机可能有一个对应于 Schannel 截断从受信任的证书颁发机构的列表中的受信任的根证书的证书。因此,IAS 服务器无法验证在客户端。

解决方案

修补程序信息

现在可以从 Microsoft 获得支持的修补程序。但是,它被用于解决本文中介绍的此问题。它仅应用于出现这一特定问题的系统。此修补程序可能还会接受进一步的测试。因此,如果此问题没有对您造成严重的影响,我们建议您等待包含此修复程序将下一个 Windows Server 2003 服务包。

要立即解决此问题,请联系 Microsoft 客户支持服务以获取此修复程序。有关 Microsoft 客户支持服务电话号码和关于支持费用的信息的完整列表,请访问下面的 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support
注意 在特殊的情况中如果 Microsoft 支持专业人员确定某个特定更新才能解决您的问题,可能会被取消通常会导致支持电话的费用。将正常收取支持费用将应用于其他支持问题和不需要进行专门更新的问题。

系统必备组件

若要将此修补程序必须具有 Windows Server 2003 Service Pack 1 (SP1) 或 Windows Server 2003 Service Pack 2 (SP2) 安装在计算机上。有关如何获取最新的 service pack,为 Windows Server 2003 的详细信息单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
889100如何获取最新的 service pack,Windows Server 2003 的

重新启动要求

您必须在应用此修补程序后,重新启动计算机。

修补程序替换信息

此修补程序不替代任何其他修补程序。

文件信息

此修补程序的英文版具有的文件属性 (或更新的文件属性) 在下表中列出。日期和时间对这些文件列出在协调世界时 (UTC)。当您查看文件信息时,将转换为本地时间。若要 UTC 与本地时间之间的时差使用控制面板中的 日期和时间 项中的 时区 选项卡。
x 使用 SP1 的基于 x86 版本的 Windows Server 2003
收起该表格展开该表格
文件的名称文件版本文件大小日期时间平台
Schannel.dll5.2.3790.2971144,8962007 年七月 10 日17: 27x86
x 与 SP2 的基于 x86 版本的 Windows Server 2003
收起该表格展开该表格
文件的名称文件版本文件大小日期时间平台
Schannel.dll5.2.3790.4115147,4562007 年七月 10 日17: 51x86
x 使用 SP1 的基于 x64 的版本的 Windows Server 2003
收起该表格展开该表格
文件的名称文件版本文件大小日期时间平台服务分支
Schannel.dll5.2.3790.2971254,4642007 年七月 10 日03: 15x64不适用
Wschannel.dll5.2.3790.2971144,8962007 年七月 10 日03: 15x86
x 与 SP2 的基于 x64 的版本的 Windows Server 2003
收起该表格展开该表格
文件的名称文件版本文件大小日期时间平台服务分支
Schannel.dll5.2.3790.2971254,4642007 年七月 10 日03: 15x64不适用
Wschannel.dll5.2.3790.2971144,8962007 年七月 10 日03: 15x86
Windows Server 2003,使用 SP1 的基于 Itanium 的版本
收起该表格展开该表格
文件的名称文件版本文件大小日期时间平台服务分支
Schannel.dll5.2.3790.2971466,4322007 年七月 10 日03: 16IA 64不适用
Wschannel.dll5.2.3790.2971144,8962007 年七月 10 日03: 16x86
Windows Server 2003,带有 SP2 的基于 Itanium 的版本
收起该表格展开该表格
文件的名称文件版本文件大小日期时间平台服务分支
Schannel.dll5.2.3790.4115466,4322007 年七月 10 日03: 24IA 64不适用
Wschannel.dll5.2.3790.4115147,4562007 年七月 10 日03: 24x86

替代方法

要变通解决此问题,请根据您的具体情况使用下面的方法之一。

方法 1: 删除某些受信任的根证书

如果某些受信任的根证书不使用您的环境中请从 Web 服务器或 IAS 服务器将其删除。若要这样做,请按照下列步骤操作:
  1. 单击 开始、 单击 运行,键入 mmc,然后单击 确定
  2. 文件 菜单上单击 添加/删除管理单元,然后单击 添加
  3. 添加独立管理单元 对话框中单击 证书,然后单击 添加
  4. 单击 计算机帐户 并单击 下一步,然后单击 完成
  5. 单击 关闭,然后单击 确定
  6. 控制台根节点,在 Microsoft 管理控制台 (MMC) 管理单元中,展开 证书 (本地计算机)、 展开 受信任的根证书颁发机构,然后单击 证书
  7. 删除受信任的根证书没有必须的。若要执行此操作用鼠标右键单击证书并单击 删除,然后单击 以确认删除该证书。
注意有一些所需的 Windows 的根证书。有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
293781所需的 Windows Server 2003,Windows XP 和 Windows 2000 的受信任的根证书

方法 2: 配置组策略以忽略在本地计算机上的受信任的证书颁发机构的列表

如果 IAS 服务器或 Web 服务器是域的成员,则可以创建一个策略,以使服务器忽略该本地计算机上的受信任的证书颁发机构的列表。当您应用此策略时,受影响的服务器和客户端只信任企业根证书颁发机构存储区中的证书。因此,不必修改每台计算机。

注意仅当所有客户端计算机从同一 Active Directory 目录服务域或 Active Directory 目录林,此方法有效。组策略不适用于不在同一 Active Directory 目录林中的计算机。

若要进行此策略,请按照下列步骤。

步骤 1: 创建组策略对象

  1. 登录到一个的域控制器上,然后启动 Active Directory 用户和计算机的工具。若要执行此操作单击 开始、 单击 运行、 键入 dsa.msc,然后单击 确定
  2. 用鼠标右键单击要在其中配置组策略对象的容器,然后单击 属性。例如对于用鼠标右键单击域容器,或用鼠标右键单击一个组织单位的容器。
  3. 单击 组策略 选项卡,然后单击 新建
  4. 键入策略的描述性名称,然后按 ENTER 键。
  5. 单击启动组策略对象编辑器的 编辑
  6. 展开 计算机配置,展开 Windows 设置,展开 安全性设置,然后单击 公钥策略
  7. 用鼠标右键单击 受信任的根证书颁发机构,然后单击 属性
  8. 单击 企业根证书授权机构,然后单击 确定
  9. 退出组策略对象编辑器。
  10. 单击 确定 以关闭 ObjectName 属性 对话框。

步骤 2: 添加到"受信任根证书颁发机构"证书存储区的根证书

  1. 将任何所需的根证书导出从本地计算机存储区的适当的服务器。这包括为内部证书颁发机构 (ca) 的根证书和您的组织要求的公共证书颁发机构的根证书。
  2. 登录到一个的域控制器上,然后启动 Active Directory 用户和计算机的工具。
  3. 用鼠标右键单击包含您在创建 $ 组策略对象的容器在"步骤 1: 创建组策略对象"部分,然后单击 属性
  4. 单击 组策略 选项卡并单击 $ 组策略对象然后单击 编辑
  5. 展开 计算机配置,展开 Windows 设置,展开 安全性设置,然后单击 公钥策略
  6. 用鼠标右键单击 受信任的根证书颁发机构,然后单击 导入
  7. 请按照证书导入向导导入根证书或证书的步骤 2a 中导出。
  8. 退出组策略对象编辑器。
  9. 单击 确定 以关闭 ObjectName 属性 对话框。
注意有一些所需的 Windows 的根证书。必须将这些证书添加到您创建的策略。有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
293781所需的 Windows Server 2003,Windows XP 和 Windows 2000 的受信任的根证书

方法 3: 配置 Schannel 不再发送 TLS/SSL 握手过程中的受信任的根证书颁发机构的列表

警告如果您修改注册表错误地使用注册表编辑器或使用另一种方法,则可能会出现严重问题。这些问题可能需要重新安装操作系统。Microsoft 不能保证可以解决这些问题。修改注册表的风险由您自己承担。

在运行 IIS 的服务器或 IAS 服务器您遇到这一问题将下面的注册表项设置为 false:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL


值名称: SendTrustedIssuerList
值类型: REG_DWORD
值数据: 0 (false)
默认状态下,此项不会在注册表中列出。默认状态下,此值为 1 (True)。 该注册表项控制该标志,用于控制是否在服务器向客户端发送的受信任的证书颁发机构列表。时,将该注册表项设为 False 时,服务器不会向客户端发送受信任的证书颁发机构的列表。此行为可能会影响客户端证书的请求的响应方式。例如对于如果 Internet Explorer 收到请求的客户端身份验证,Internet Explorer 会显示一个从服务器列表中的证书颁发机构链中仅显示的客户端证书。但是,如果服务器不发送的受信任的证书颁发机构的列表,Internet Explorer 将显示在客户端计算机安装的所有客户端证书。

若要将此注册表项,请按照下列步骤操作:
  1. 单击 开始、 单击 运行,键入 regedit,然后单击 确定
  2. 找到并单击以下注册表子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
  3. 编辑 菜单上指向 新建,然后单击 DWORD 值
  4. 键入 SendTrustedIssuerList,然后按 ENTER 以命名注册表项。
  5. 用鼠标右键单击 SendTrustedIssuerList,然后单击 修改
  6. 数值数据 框中键入 0,如果已经未显示的值,然后单击 确定
  7. 退出注册表编辑器。
有关 SCHANNEL 注册表项的详细信息,请访问下面的 Microsoft 网站:
http://technet2.microsoft.com/WindowsServer/en/library/3f98fdd9-ed64-49f7-9c20-a2d4581dfbea1033.mspx

状态

Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。

更多信息

Windows Server 2003 的目的被为了自动检查在 Microsoft Windows 更新网站上的受信任的证书颁发机构的列表,当您更新根证书。然后,Windows 将在该证书验证用户的程序后安装相应的根证书。

注意在 Windows Server 2003 中的证书颁发机构列表不能超过 12,228 (0x3000) 个字节。更新根证书时, 可能会显著增加的受信任的证书颁发机构列表。因此,列表可能会变得太长。在这种情况下,Windows 将截断列表中。此行为可能会导致问题的授权。在这种情况下,您可能会遇到"症状"部分中描述的问题。

如何配置 Schannel 事件的日志记录

警告如果您修改注册表错误地使用注册表编辑器或使用另一种方法,则可能会出现严重问题。这些问题可能需要重新安装操作系统。Microsoft 不能保证可以解决这些问题。修改注册表的风险由您自己承担。

若要配置 Schannel 在系统日志中记录警告事件,设置以下注册表项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\Schannel


值名称: EventLogging
值类型: REG_DWORD
值数据: 0x3
注意值为 0x3 配置 Schannel 记录警告事件和错误事件。

有关如何配置的详细信息的 Schannel 事件日志记录,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
260729如何启用 Schannel 事件在 IIS 中日志记录

参考

有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
931125Microsoft 的根证书计划成员 (2007 年一月)
有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
814394当您使用 EAP-TLS 或 PEAP 使用 EAP-TLS 的证书要求

属性

文章编号: 933430 - 最后修改: 2007年10月11日 - 修订: 3.4
这篇文章中的信息适用于:
  • Microsoft Windows Server 2003 Datacenter Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows Server 2003 Web Edition
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Standard x64 Edition
关键字:?
kbmt kbautohotfix kbeventlog kbtshoot kberrmsg kbprb KB933430 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 933430
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

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