我正在开发一个库,它生成XML数据并签名生成的XML。我已经安装了一个pkcs12证书(通过pem文件使用OpenSSL生成)到Windows证书存储中。清楚地识别Windows证书存储区中的证书
我加载从C#代码证书与
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
X509Certificate2 cert = null;
foreach (var item in store.Certificates)
{
if (item.SubjectName.Name.Contains("CN=IDENTIFIER"))
{
cert = item;
break;
}
}
store.Close();
在我的情况下,CN标识符是:我的女士prename +姓。证书来自第三方。所以我认为我对标识符没有影响。
在这里,问题来了:
有没有办法准确地识别从C#此证书。将来有可能,多个证书具有相同的X509参数(CN等)。
预先感谢您。
谢谢IssuerName +证书序列号正是我所期待的。 IETF表示:序列号必须是由CA分配给每个证书的正整数。对于由给定CA发布的每个证书(即,发行者名称和序列号标识唯一证书),它必须是唯一的。 CA必须强制serialNumber是一个非负整数。但你对RDN意味着什么? – csteinmueller
我认为RDN是X500DistinguishedName类型的Issuername – csteinmueller
@csteinmueller RDN代表RelativeDistinguishedName。这是具有多个字段的类型结构。注:序列号是一个整数,但该整数的长度未定义,并且长度为20个字节的序列号并不少见。 –