使用服务器变量(Request.ServerVariables["CERT_SERVER_ISSUER"]
),我可以获得一个字符串,表示连接中使用的服务器证书颁发者。
我想访问实际的证书(如果可能,请访问X509Certificate
),以便我可以进一步检查该证书。
我想在我的ASP.NET代码中验证服务器证书,以确保没有人简单地单击“ ..proceed”。具体来说,我想检查CA根目录。
我的理解方式-通常浏览器不会提供客户端证书-因此:
HttpContext.Current.Request.ClientCertificate
将为空/空...我正在寻找服务器证书,如果可能的话,还要查找服务器证书的完整链,以便我可以检查CA根目录。
答案 0 :(得分:0)
您可以从证书存储中获取证书,也可以通过主题名称,指纹或其他方式进行。您需要确定其中有哪些可用-并在此示例中更改“查找类型”:
X509Store store = new X509Store(StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindBySubjectName, "Subject Name", false);
if (certs.Count > 0)
{
// do something with: certs[0];
};
store.Close();