如何从X509Certificate2获取RFC-1779中的颁发者名称?

时间:2018-08-22 21:17:14

标签: c# certificate x509certificate2

Issuer的{​​{1}}属性返回X509Certificate2,例如:

“ CN =电子商务开发CA,OU = ITSB电子商务系统团队,O = AVANO,L =悉尼,S = NSW,C = AU”

如何在RFC-1779中获得相同的信息?例如:

“ / C = AU / ST = NSW / L =悉尼/ O = AVANO / OU = ITSB电子商务系统团队/ CN =电子商务开发CA”

string

1 个答案:

答案 0 :(得分:0)

您想要的字符串与您从Issuer实际获得的字符串相反,并且由斜杠而不是逗号分隔,并带有空格。

我解决这个问题的第一个尝试是创建一个新的X500DistinguishedName对象,将证书的IssuerNameX500DistinguishedNameFlags.Reversed传递给构造函数:

var distinguishedName = new X500DistinguishedName(cert.Issuer, X500DistinguishedNameFlags.Reversed);

但是,这并没有为我提供我想要的结果。我不确定是否有任何方法可以做到这一点。但是您可以尝试手动重新格式化字符串以满足您的需求:

var split = cert.Issuer.Split(new []{',', ' '}, StringSplitOptions.RemoveEmptyEntries);
var reversed = split.Reverse();
var finalIssuerName = string.Join("/", reversed);