我正在使用以下代码读取 CSR 的属性:

string csr = myCSR;
CX509CertificateRequestPkcs10 request = new CX509CertificateRequestPkcs10();
request.InitializeDecode(csr, EncodingType.XCN_CRYPT_STRING_BASE64_ANY);
request.CheckSignature();
string tmp = ReadDnsSan(request);
string attribs = (((CX500DistinguishedName)request.Subject).Name);

在 attribs 中,我得到了通用名称、组织、部门、城市、国家,但不是电子邮件地址

CSR 不应该是强制性的吗?
有没有办法用 C# 读取它?

最佳答案



您正朝着正确的方向前进,但主题字段中似乎未显示电子邮件 RDN 属性。



不。此外,整个主题字段是可选的。因此,您可能需要相应地修改您的代码。可能会出现主题字段为空的情况,主题信息应显示在主题备用名称扩展中。

因此,如果主题字符串中缺少 E=Email= 属性,则该属性不会出现在那里。

关于c# - 使用 C# 从证书签名请求 (CSR) 中读取电子邮件字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31250410/

10-12 07:27
查看更多