启用S​​SL的网页不会提示客户端证书

简介 :我们有两个不同的启用了SSL的Windows Server + II6环境。 一个人的行为是我们想要的,另一个不是。

服务器configuration

  • Windows Server 2003 SP2
  • IIS 6
  • 页面configuration为SSL客户端身份validation。

详细信息 :我们有一个生产虚拟机,configuration为托pipe一个IIS 6网站,需要SSL客户端身份validation才能启用CAC。 在此生产虚拟机上,页面将显示服务器证书,然后在提示客户机证书之前死亡。 为了testing服务器的configuration,我们创build了一个与您的CAC页面具有相同configuration的“Hello World”页面,我们看到了相同的结果。 然后,我们把这个页面放在一个已知的有相同OS / IIS版本的工作虚拟机上,并以相同的方式configuration页面。 通过提示客户端证书,然后加载页面,页面正常运行。

我们采取的步骤来解决这个问题

  • 检查两台机器上证书path的完整性
  • 在两台虚拟机之间分散IIS元数据以检查不一致性
  • 在破坏的虚拟机上创build并安装新的服务器证书
  • 将选项更改为“需要客户端证书”而不是“接受客户端证书”
  • 检查IIS日志中是否有错误。 所有的访问都回来了200。

我们find了一个解决我们问题的选项,但却产生了新的问题。 有一个选项可以协商所有页面的客户端证书,这会导致证书提示出现,但会导致每个页面都这样做,这就违背了SSL会话的目的。

同样重要的是 :这个虚拟的虚拟机已经根据政府的规范进行了STIG格式化。 我们怀疑这可能是潜在的原因。 但是,解决问题的可能性不在我们的控制之内。 因此,我们必须处理目前的局限性。

经过三个星期的微软支持,find了解决scheme。 修改以下registry值:

已启用HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ DisableRenegoOnServer。 将该值设置为0,并提示返回。

这是Microsoft知识库文章: http : //support.microsoft.com/kb/977377

在KB文章中描述了这些症状,但是,这个知识库文章的主题不是这个问题:

“Internet信息服务(IIS):在某些configuration中,使用证书客户端身份validation(包括证书映射scheme)的IIS将受到影响,站点范围的客户端证书身份validation不会受到影响,并且将继续运行。