我正在从这样的字符串加载证书:
public static void Test()
{
byte[] arrayCertificate;
arrayCertificate = Convert.FromBase64String("CERT_STRING");
X509Certificate2 clientCertificateFromXml = new X509Certificate2(arrayCertificate);
Console.Write(clientCertificateFromXml);
Console.ReadKey();
}
但是此证书没有“主题唯一标识符” 看看这个:
http://en.wikipedia.org/wiki/X.509(证书结构的部分)
我想知道如何从我的.NET代码中读取该值(我看起来我可以获得SerialNumber,Thumbprints和其他,但在任何地方都没有Subject UID。)
此外,我将非常感谢如果有人可以共享openssl命令将此UID包含在证书中:-)(pfx one)
答案 0 :(得分:3)
我想知道如何从.NET代码中读取该值
IIRC这不会在.NET BCL中公开,无论是X509Certificate
还是更新(更好但仍然不完整)X509Certificate2
。
但是您可以从Mono.Security项目中使用Mono程序集(或只是您想要的代码)。它是开源的,MIT.X11获得许可,它包含它自己的X509Certificate
。
此版本公开了X.509证书中的所有内容,包括SubjectUniqueIdentifier属性。
我将非常感激如果有人可以共享openssl命令以包含此证书的UID
我不记得openssl ...但您可以使用Mono.Security中的X509CertificateBuilder
来创建自己的证书。有关示例,请参阅Mono的makecert
工具源代码。
免责声明:我写了代码: - )