【发布时间】:2011-08-02 08:35:58
【问题描述】:
我正在开发一个需要基于证书的双向 https 身份验证的 .net 项目,即客户端需要将请求与自己的证书相关联,并且 https 服务器可以根据证书对客户端进行身份验证。我弄清楚了粗略的工作流程,但不确定这是否是正确的方法:
在客户端:
HttpWebRequest 请求 = (HttpWebRequest)WebRequest.Create("请求 uri");在服务器端:
// 证书是来自 certStore 或证书文件的 X509Certificate2 实例
request.ClientCertificates.Add(cert); ;
// req 是 HttpListenerRequest 实例
if (req.ClientCertificateError == 0)
{
X509Certificate2 clientCert = req.GetClientCertificate;
// 验证客户端证书
}
我的问题是:
1) 这是正确的做法吗?
2) 在服务器端,一旦它获得与请求关联的客户端证书,它会做什么来验证证书?假设我们可以在服务器上安装相同的客户端证书。
我是安全方面的新手。如果有人可以帮助解决问题或指出有用的文件,我将不胜感激。
【问题讨论】:
标签: .net authentication https client certificate