验证客户端证书的正确方法 - ASP.NET MVC

时间:2017-09-01 14:48:56

标签: c# asp.net ssl iis

我正在尝试构建一个应用程序,该应用程序将使用客户端证书来验证尝试访问应用程序的用户。我正在使用here所述的自签名CA.虽然,我做了很多研究,但我还没有找到适当的"验证客户端证书的方法。

  1. 首先,似乎可以在应用程序级别(使用.NET类,如X509存储)或IIS本身中完成。每种方法有哪些优点或缺点?
  2. 如果我选择在我的应用程序代码中验证证书,验证的正确字段是什么?例如,this question uses the serial number。但是,对于我的测试"证书,序列号实际上是四个字符(不计算空格)。确保客户证书真正由我发出的正确方法是什么?
  3. 我试图在服务器级别应用它(我使用IIS Express进行测试)。但是,我没有获得证书请求,只有403.7 - 禁止,错误(使用以下web.config设置<access sslFlags="Ssl,SslNegotiateCert,SslRequireCert" /&gt;)。但是,如果我删除SslRequireCert,我至少可以&#34;看到&#34;使用以下代码段的许多证书:

        X509Store store = new X509Store(StoreLocation.CurrentUser);
        store.Open(OpenFlags.ReadOnly);
        X509Certificate cert = store.Certificates[0];
    
  4. 即使解决了这个问题(3),有没有办法使用IIS来验证证书而不必将其映射到a Windows account

    我尝试在Firefox和我的PC密钥库中安装客户端证书。感谢您提供任何指导。

0 个答案:

没有答案