-2

我在 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 诊断工具。不幸的是,它显示了我在上面粘贴的消息并且没有太多细节。
  5. 当我尝试 IIS 目录安全选项卡下的“接受客户端证书”选项时,它可以工作。

有什么我遗漏或不知道的吗?

4

1 回答 1

0

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

 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 来解决这里讨论的问题

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

于 2012-12-13T16:07:56.527 回答