繁体   English   中英

IIS 7.5客户端证书身份验证

[英]IIS 7.5 Client certificate authentication

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

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

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

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

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

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

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

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

certutil -addstore -v -enterprise root CertificateAuthority.cer

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

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

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

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

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

工具> Internet选项>高级选项卡>安全性部分

然后清除以下复选框:

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

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

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

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

  • 检查到期日期并确保证书尚未过期。 请与您的证书颁发机构联系,以查看您的证书是否已过期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM