c# - 访问自签名证书详细信息
问题描述
我有一个部署到 iis 的 asp.net mvc 网站。使用自签名 SSL 证书来保护流量。我想从我的 asp.net 访问这个自签名证书,可能是在startup
课堂上或其他地方,以获得自签名证书的有效性(我需要这个指标来做其他事情)。
我怎么能这样做?
我很乐意发布一些代码,或者我到目前为止尝试过的内容,但遗憾的是我不知道从哪里开始!
我真的很感激任何帮助。
编辑
重新表述我的问题,假设我有一个部署到 IIS 的 asp.net Web 服务,我如何访问该 IIS 中的证书,并检索它们的有效期(从使用 c# 代码的 Web 服务中)
解决方案
您可以通过打开证书存储并根据搜索条件查找证书来做到这一点。如果它是您创建的自签名证书,您应该对此有所了解。
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()
推荐阅读
- angular - 如何设置全局变量以包含从方法返回的数据 - Angular 6服务?
- android-studio - android 3.4 - 如何生成签名的apk和构建apk?
- javascript - 无法捕获由 js 附加的类的点击事件
- python - 如何在 AppleScript 上发送 iMessage?
- regex - 匹配除脚本标签之外的所有标签的 Ruby 正则表达式
- php - Auth::user() 在 Laravel 5.8 中返回 null
- jmx - 在 Grafana 中与 groupBy 一起计算百分比
- single-sign-on - 元数据中的 AssertionConsumerService 和 SSO 中的 saml2 发行者是否相同?
- c++ - 如何将垂直滚动条添加到全屏 win32 控制台?
- javascript - 拖放 Javascript if 语句问题