Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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
Asp.net IIS 7.5客户端证书身份验证_Asp.net_Certificate_Iis 7.5_Ssl Certificate - Fatal编程技术网

Asp.net IIS 7.5客户端证书身份验证

Asp.net IIS 7.5客户端证书身份验证,asp.net,certificate,iis-7.5,ssl-certificate,Asp.net,Certificate,Iis 7.5,Ssl Certificate,我在本地计算机上有asp.net站点 IIS配置: 绑定:使用自签名证书的https绑定, ssl设置:需要ssl和客户端证书 我已在我的计算机上安装了下一个证书: 可信根证书颁发机构存储中的CA证书(称为“CA中心”)。 “CA中心”在个人存储中颁发的客户端证书 我去站点并接受服务器证书。但接下来我得到一个错误: HTTP错误403.7-禁止。您试图访问的页面要求浏览器具有Web服务器可以识别的安全套接字层(SSL)客户端证书 这意味着浏览器(IE)不会向服务器发送适用的客户端证书 怎么了?是

我在本地计算机上有asp.net站点

IIS配置: 绑定:使用自签名证书的https绑定, ssl设置:需要ssl和客户端证书

我已在我的计算机上安装了下一个证书: 可信根证书颁发机构存储中的CA证书(称为“CA中心”)。 “CA中心”在个人存储中颁发的客户端证书

我去站点并接受服务器证书。但接下来我得到一个错误:

HTTP错误403.7-禁止。您试图访问的页面要求浏览器具有Web服务器可以识别的安全套接字层(SSL)客户端证书

这意味着浏览器(IE)不会向服务器发送适用的客户端证书


怎么了?是否需要配置其他内容?

重新安装证书并检查其生效日期。发件人:

  • 在服务器上的浏览器中下载根服务器证书 电脑。运行位于中的Iisca.exe命令行实用程序 Inetsrv目录

  • 检查客户证书上的生效日期,并确保 日期和时间已经到了

  • 检查过期日期并确保证书未过期 期满。联系您的证书颁发机构,查看您的 证书已过期


    • 我正好遇到了这个问题,我花了一段时间才找出原因。事实证明,这是因为我的计算机是域的一部分,并且该域有某种组策略限制IIS愿意接受的受信任根证书。我不知道设置是什么,也不知道如何更改它,但我发现我可以通过选择使用certutil命令将我的证书安装到企业物理存储中来解决这个问题:

      certutil -addstore -v -enterprise root CertificateAuthority.cer
      

      听起来好像浏览器从未提示您选择要发送的客户端证书,这意味着SSL握手有问题。试着用OpenSSL测试一下

      此外,一个非常常见的问题是受信任的根CA文件夹中的证书过多。当服务器发送CA列表时,列表的大小是有限制的,因此如果超过限制,它将截断剩余的CA证书。确保受信任的根CA文件夹没有太多证书。检查此问题的一种方法是在注册表编辑器中临时修改SCHANNEL以不发送CA列表,然后重试

      开始>运行>'regedit'>HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL> 右键单击>新建>DWORD>'SendTrustedIssuerList'>值:0


      我遇到了同样的问题,正如我在回答中所说的那样,重新安装成功了。如果没有,请尝试其他浏览器并告诉我们发生了什么。您还可以尝试将两个证书都放在TR和P存储中,仅用于测试目的。您还可以使用Microsoft管理控制台中的“证书”管理单元,确保您的自签名证书位于受信任的根证书颁发机构文件夹下。要添加管理单元,请运行:mmc->文件->添加/删除管理单元->证书->添加->计算机帐户。