6

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

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

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

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

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

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

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

4

3 回答 3

3

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

certutil -addstore -v -enterprise root CertificateAuthority.cer
于 2013-03-19T16:17:46.943 回答
2

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

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

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

于 2015-04-08T14:42:34.223 回答
0

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

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

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

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

于 2012-10-02T17:10:03.053 回答