Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
双向SSL在服务器上工作,但不从客户端工作_Ssl - Fatal编程技术网

双向SSL在服务器上工作,但不从客户端工作

双向SSL在服务器上工作,但不从客户端工作,ssl,Ssl,我有一个在Windows2003R2下运行的IIS6.0下托管的WCF服务。该服务是SSL安全的,带有“必需的客户端证书”选项。 当我在Win2003R2中从IE浏览服务时,我能够看到WSDL。 当我试图从运行IE的WinXP开发机器上浏览时。我看到像这样的403.7错误 The page requires a client certificate ...... ...... HTTP Error 403.7 - Forbidden: SSL client certificate is req

我有一个在Windows2003R2下运行的IIS6.0下托管的WCF服务。该服务是SSL安全的,带有“必需的客户端证书”选项。 当我在Win2003R2中从IE浏览服务时,我能够看到WSDL。 当我试图从运行IE的WinXP开发机器上浏览时。我看到像这样的403.7错误

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

HTTP Error 403.7 - Forbidden: SSL client certificate is required.
Internet Information Services (IIS)
我花了5天的时间在这上面,尽了一切可能

  • 检查客户机上的客户机证书、私钥,反复导入
  • 检查其预期用途(客户端身份验证)和EKU值
  • 正在检查服务器和客户端上的信任根证书颁发机构文件夹中是否安装了CA
  • 正在运行SSL诊断工具。不幸的是,它显示了我在上面粘贴的消息,没有太多细节
  • 当我尝试IIS目录安全选项卡下的“接受客户端证书”选项时,它会起作用

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

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

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