我的本地机器上有asp.net网站。
IIS配置: 绑定:https绑定自签名证书, ssl设置:需要SSL并要求客户端证书
我在我的机器上安装了下一个证书: 受信任的根证书颁发机构存储中的CA证书(称为“CA中心”)。 个人商店中“CA Center”颁发的客户证书
我去网站并接受服务器证书。但接下来我得到错误:
HTTP错误403.7 - 禁止访问。您尝试访问的页面要求您的浏览器具有Web服务器可识别的安全套接字层(SSL)客户端证书。
这意味着浏览器(IE)不会向服务器发送适用的客户端证书。
怎么了?我应该配置其他东西吗?
答案 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目录。
检查客户端证书上的生效日期并确保 日期和时间到了。
检查到期日期并确保证书没有 过期。联系您的证书颁发机构,看看您的 证书已过期。