【问题标题】:IIS 7.5 Client certificate authenticationIIS 7.5 客户端证书身份验证
【发布时间】:2012-09-01 10:09:14
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

  • 我遇到了同样的问题,像我在回答中所说的那样重新安装就可以了。如果没有,请尝试其他浏览器并告诉我们会发生什么。您也可以尝试将这两个证书都放在 TR 和 P 存储中,仅用于测试目的。

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


【解决方案1】:

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

certutil -addstore -v -enterprise root CertificateAuthority.cer

【讨论】:

  • 您还可以使用 Microsoft 管理控制台中的证书管理单元来确保您的自签名证书位于受信任的根证书颁发机构文件夹下。添加管理单元运行:mmc -> 文件 -> 添加/删除管理单元 -> 证书 -> 添加 -> 计算机帐户。
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

    • 在服务器上的浏览器中下载根服务器证书 计算机。运行位于 Inetsrv 目录。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-09
      • 2013-10-07
      • 1970-01-01
      • 2022-06-23
      • 2018-02-12
      相关资源
      最近更新 更多