2路SSL在服务器上运行,但不在客户端运行

时间:2012-12-12 16:00:13

标签: ssl

我在Windows 2003 R2下运行的IIS 6.0下托管了WCF服务。该服务为SSL secured,带有“必需的客户端证书”选项。 当我在win 2003 R2中从IE浏览服务时,我能够看到WSDL。 当我尝试从我在Win XP上运行IE的开发机器上浏览时。我看到像这样的403.7错误。

The page requires a client certificate
......
......

HTTP Error 403.7 - Forbidden: SSL client certificate is required.
Internet Information Services (IIS)

我花了5天时间尝试了所有可能的事情,比如

  1. 检查客户端上的客户端证书,私钥,反复导入。
  2. 检查其预期用途(客户端身份验证)和EKU值。
  3. 检查CA是否安装在Trust Root Cert Authority文件夹中的服务器和客户端上。
  4. 运行SSL Diag工具。不幸的是,它显示了我粘贴在上面的消息,并没有太多细节。
  5. 当我在“IIS目录安全性”选项卡下尝试“接受客户端证书”选项时,它可以正常工作。
  6. 有什么东西我缺少或不知道吗?

1 个答案:

答案 0 :(得分:0)

最后在MSFT支持的帮助下,我已经解决了这个问题。 原因是,在Web服务器上,“受信任的根证书颁发机构”文件夹中的证书太多,超出了建议的长度。因此我在事件日志中收到了这个警告。

 When asking for client authentication, this server sends a list of
 trusted certificate authorities to the client. The client uses this
 list to choose a client certificate that is trusted by the server.
 Currently, this server trusts so many certificate authorities that the
 list has grown too long. This list has thus been truncated. The
 administrator of this machine should review the  certificate
 authorities trusted for client authentication and remove those that 
 do not really need to be trusted.

我确实删除了一些过期/未使用的证书,但仍然不够。我无法删除更多证书,因为他们担心因为没有过期而破坏系统。 我们使用方法3来解决所讨论的问题here

虽然它解决了我的问题,但只使用了这种方法,客户端浏览器会显示计算机中存在的所有客户端证书的列表,而不是根据信任根CA选择哪个服务器需要。 这对我有用,因为我有一个WCF服务,而不是一个网站。