IIS 7.5客户端证书身份验证

时间:2012-09-07 13:55:41

标签: asp.net certificate iis-7.5 ssl-certificate

我的本​​地机器上有asp.net网站。

IIS配置: 绑定:https绑定自签名证书, ssl设置:需要SSL并要求客户端证书

我在我的机器上安装了下一个证书:   受信任的根证书颁发机构存储中的CA证书(称为“CA中心”)。   个人商店中“CA Center”颁发的客户证书

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

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

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

怎么了?我应该配置其他东西吗?

4 个答案:

答案 0 :(得分:3)

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

certutil -addstore -v -enterprise root CertificateAuthority.cer

答案 1 :(得分:2)

听起来好像浏览器从未提示您选择要发送的客户端证书,这意味着SSL握手的内容不正确。尝试使用OpenSSL进行测试。

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

  

开始>运行> 'regedit'> HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL>   右键单击>新> DWORD> 'SendTrustedIssuerList'>值:0

答案 2 :(得分:0)

我认为在测试使用自签名证书的WCF客户端/服务器设置时,我有同样的问题让Internet Explorer实际创建我已安装证书的提示。

如果我没记错的话,这是Internet Explorer中的一个设置,可能就是这个......

工具>互联网选项>高级标签>安全部分

然后清除以下复选框:

'检查发布商的证书撤销'和 '检查服务器证书撤销'

答案 3 :(得分:0)

重新安装证书并检查其生效日期。来自Microsoft Support

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

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

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