访问自签名证书的详细信息

时间:2018-10-31 10:07:45

标签: c# asp.net-mvc api ssl self-signed

我有一个部署到iis的asp.net mvc网站。自签名SSL证书用于保护流量。我想从我的asp.net(可能在startup类中访问该自签名证书,以获取自签名证书的有效性(我需要此度量标准用于其他功能)。

我该怎么办?

我很乐意发布一些代码,或者到目前为止我已经尝试过的代码,但可惜我不知道从哪里开始!

我将非常感谢您的帮助。

修改

为了重新回答我的问题,可以说我有一个部署到IIS的asp.net Web服务,如何访问该IIS中的证书,并检索它们的有效期(使用C#代码从Web服务中获取)

1 个答案:

答案 0 :(得分:2)

您可以通过打开证书库并根据搜索条件查找证书来做到这一点。如果您创建的是自签名证书,那么您应该对此有所了解。

object value = "AcmeOrganization";
X509FindType findType = X509FindType.FindByIssuerName;
StoreName storeName = StoreName.My;
StoreLocation storeLocation = StoreLocation.CurrentUser;
var store = new X509Store(storeName, storeLocation);
try
{
  store.Open(OpenFlags.ReadOnly);
  var certs = store.Certificates.Find(findType, value, true);
  if (certs.Count > 0) 
  {
    return certs[0];
  }
}
finally
{
  store.Close();
  store = null;
}

这将为您提供所需的证书,然后您可以致电验证来进行链验证。 X509Certificate2对象将提供其他属性以及有效期。

certs[0].Verify()