访问某些文件夹时,要求获得客户证书IIS7.5



我们有一个ASP.NET MVC4应用程序,其中有一部分应该通过客户端证书进行保护。

当任何人想连接到应用程序的这一部分时,浏览器应该向他们索要客户端证书,一旦他们选择了证书,我们的服务器就会得到它,检查它的有效性并显示内容。

好的,我在选择证书部分遇到问题。在将其设置为视图内容上的一个文件夹之前,我正在尝试在全局应用程序上对此进行配置。

我已经将SSL设置为必需,并在IIS上的应用程序配置上设置了SSL配置上的必需客户端证书。

我已经启用了iisClientCertificateMappingAuthentication(尽管我还没有设置映射)

当我尝试同时访问Firefox和Chrome应用程序时,会返回403禁止错误,说明我无法使用提供的凭据访问该应用程序。

我在本地计算机上安装了一个客户端证书,CA在服务器本地计算机上创建了此证书作为受信任的根证书。

没有提示我输入证书。如果我在SSL设置上取消选中客户端证书的"要求",我可以通过https访问该应用程序。

这是我第一次使用客户端证书,所以这有点令人困惑,也许我没有提供足够的信息。请联系fre了解更多评论信息。

编辑:我已导出客户端证书,将其复制到服务器并在那里进行检查。证书显示为有效,证书链中的每个元素似乎都在服务器中被识别。

我也检查了IIS日志,得到的错误是403.7,所以证书没有颁发给服务器或无效。

现在。。。我已经检查了证书在服务器上是否有效,它是否正确安装在客户端上,但它没有到达服务器或没有在那里进行验证。。。我在这里错过了什么?

好的,我终于找到了问题,它与为可信证书颁发机构列表保留的缓冲区大小有关。

检查此kb文章:https://support.microsoft.com/en-us/kb/933430

TL DR;要解决此问题,只需在注册表中添加一个新条目:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SHANNEL

将SendTrustedIssuerList命名为值为0的DWORD值。

这样,服务器就不会发送受信任的证书颁发机构列表,因此浏览器会向用户显示完整的证书列表。

最新更新